Re: [PATCH bpf-next v3 2/2] selftests/bpf: Verify rejection of sleepable tracing prog
[email protected] Tue, 04 Aug 2026 15:49:52 +0000
| Newsgroups | org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] The test contains dead reproducer code that intentionally crashe= s the kernel on test failure instead of failing gracefully. -- --- Patch [2]: [PATCH bpf-next v3 2/2] selftests/bpf: Verify rejection of s= leepable tracing prog --- commit 22c464db2aa39d78b7ca52b202c4a7828b6fddc2 Author: Leon Hwang <[email protected]> selftests/bpf: Verify rejection of sleepable tracing prog This commit adds a test to verify that a sleepable tracing program cannot attach to a '__x64_sys' prefixed program target. > diff --git a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c b/too= ls/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c > index 4a87d7163c8c7..2523c07a16c65 100644 > --- a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c > +++ b/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c [ ... ] > @@ -576,6 +577,60 @@ static void test_func_replace_progmap(void) > freplace_progmap__destroy(skel); > } > =20 > +static void test_sleepable_fentry_to_xdp(void) > +{ [ ... ] > + err =3D fentry_sleepable__load(skel); > + ASSERT_ERR(err, "fentry_sleepable__load"); > + if (err) > + goto out; > + > + skel->links.fentry_xdp =3D bpf_program__attach_trace(skel->progs.fentry= _xdp); > + if (!ASSERT_OK_PTR(skel->links.fentry_xdp, "bpf_program__attach_trace")) > + goto out; > + > + skel_xdp->links.__x64_sys_nop =3D bpf_program__attach_xdp(skel_xdp->pro= gs.__x64_sys_nop, > + ifindex); > + if (!ASSERT_OK_PTR(skel_xdp->links.__x64_sys_nop, "bpf_program__attach_= xdp")) > + goto out; > + > + err =3D system("ping -q -c 1 -W 1 127.0.0.1 > /dev/null"); > + ASSERT_OK(err, "ping"); > + ASSERT_ERR(skel->bss->retval, "retval"); [Severity: Medium] Will this sequence crash the kernel if the test fails? If the kernel lacks the fix, fentry_sleepable__load() will return 0. ASSERT_ERR() will correctly log a test failure, but since err =3D=3D 0, the if (err) goto out; check will be bypassed. The test will then proceed to attach the sleepable program and trigger it with ping, intentionally causing the kernel panic described in the commit message. Additionally, when the kernel is fixed and the test passes, this entire blo= ck is dead code because fentry_sleepable__load() returns < 0 and the test exits early via goto out. Could this test fail gracefully without crashing the system during automated bisections? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260804145710.4306= [email protected]?part=3D2