]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/bpf: Fix failure paths in send_signal test
authorAlexei Starovoitov <ast@kernel.org>
Thu, 13 Nov 2025 17:11:53 +0000 (09:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:29 +0000 (13:09 +0100)
[ Upstream commit c13339039891dbdfa6c1972f0483bd07f610b776 ]

When test_send_signal_kern__open_and_load() fails parent closes the
pipe which cases ASSERT_EQ(read(pipe_p2c...)) to fail, but child
continues and enters infinite loop, while parent is stuck in wait(NULL).
Other error paths have similar issue, so kill the child before waiting on it.

The bug was discovered while compiling all of selftests with -O1 instead of -O2
which caused progs/test_send_signal_kern.c to fail to load.

Fixes: ab8b7f0cb358 ("tools/bpf: Add self tests for bpf_send_signal_thread()")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/bpf/20251113171153.2583-1-alexei.starovoitov@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/bpf/prog_tests/send_signal.c

index 7b1343f70e65ad180f762bce26bc2829bcec22c2..ab5fedc5741e87b551bce4dedf3890e1d0831ce8 100644 (file)
@@ -138,6 +138,11 @@ destroy_skel:
 skel_open_load_failure:
        close(pipe_c2p[0]);
        close(pipe_p2c[1]);
+       /*
+        * Child is either about to exit cleanly or stuck in case of errors.
+        * Nudge it to exit.
+        */
+       kill(pid, SIGKILL);
        wait(NULL);
 }