Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
Commit 390c17ca authored by Puranjay Mohan's avatar Puranjay Mohan Committed by Greg Kroah-Hartman
Browse files

selftests/bpf: fexit_sleep: Fix stack allocation for arm64

[ Upstream commit e1ef78dc ]

On ARM64 the stack pointer should be aligned at a 16 byte boundary or
the SPAlignmentFault can occur. The fexit_sleep selftest allocates the
stack for the child process as a character array, this is not guaranteed
to be aligned at 16 bytes.

Because of the SPAlignmentFault, the child process is killed before it
can do the nanosleep call and hence fentry_cnt remains as 0. This causes
the main thread to hang on the following line:

while (READ_ONCE(fexit_skel->bss->fentry_cnt) != 2);

Fix this by allocating the stack using mmap() as described in the
example in the man page of clone().

Remove the fexit_sleep test from the DENYLIST of arm64.

Fixes: eddbe8e6

 ("selftest/bpf: Add a test to check trampoline freeing logic.")
Signed-off-by: default avatarPuranjay Mohan <puranjay@kernel.org>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20240715173327.8657-1-puranjay@kernel.org


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 019167c7
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment