diff options
author | Thomas Gleixner <[email protected]> | 2024-08-02 14:10:55 +0200 |
---|---|---|
committer | Thomas Gleixner <[email protected]> | 2024-08-02 14:10:55 +0200 |
commit | 4436e6da008fee87d54c038e983e5be9a6baf8fb (patch) | |
tree | 265a15efcf6f17e0e32e258d66b274fc5cad41d4 /tools/testing/selftests/bpf/prog_tests/fexit_sleep.c | |
parent | b7c35279e0da414e7d90eba76f58a16223a734cb (diff) | |
parent | 8400291e289ee6b2bf9779ff1c83a291501f017b (diff) |
Merge branch 'linus' into x86/mm
Bring x86 and selftests up to date
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/fexit_sleep.c')
-rw-r--r-- | tools/testing/selftests/bpf/prog_tests/fexit_sleep.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/fexit_sleep.c b/tools/testing/selftests/bpf/prog_tests/fexit_sleep.c index f949647dbbc2..552a0875ca6d 100644 --- a/tools/testing/selftests/bpf/prog_tests/fexit_sleep.c +++ b/tools/testing/selftests/bpf/prog_tests/fexit_sleep.c @@ -21,13 +21,13 @@ static int do_sleep(void *skel) } #define STACK_SIZE (1024 * 1024) -static char child_stack[STACK_SIZE]; void test_fexit_sleep(void) { struct fexit_sleep_lskel *fexit_skel = NULL; int wstatus, duration = 0; pid_t cpid; + char *child_stack = NULL; int err, fexit_cnt; fexit_skel = fexit_sleep_lskel__open_and_load(); @@ -38,6 +38,11 @@ void test_fexit_sleep(void) if (CHECK(err, "fexit_attach", "fexit attach failed: %d\n", err)) goto cleanup; + child_stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | + MAP_ANONYMOUS | MAP_STACK, -1, 0); + if (!ASSERT_NEQ(child_stack, MAP_FAILED, "mmap")) + goto cleanup; + cpid = clone(do_sleep, child_stack + STACK_SIZE, CLONE_FILES | SIGCHLD, fexit_skel); if (CHECK(cpid == -1, "clone", "%s\n", strerror(errno))) goto cleanup; @@ -78,5 +83,6 @@ void test_fexit_sleep(void) goto cleanup; cleanup: + munmap(child_stack, STACK_SIZE); fexit_sleep_lskel__destroy(fexit_skel); } |