]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: Move sleepable refcounted_kptr tests to syscalls
authorViktor Malik <vmalik@redhat.com>
Mon, 9 Mar 2026 11:23:58 +0000 (12:23 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 9 Mar 2026 16:28:42 +0000 (09:28 -0700)
Now that sleepable programs are always enabled on syscalls, let
refcounted_kptr tests use syscalls rather than bpf_testmod_test_read,
which is not sleepable with error injection disabled.

The tests just check that the verifier can handle usage of RCU locks in
sleepable programs and never actually attach. So, the attachment target
doesn't matter (as long as it is sleepable) and with syscalls, the tests
pass on kernels with disabled error injection.

Signed-off-by: Viktor Malik <vmalik@redhat.com>
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/8b6626eae384559855f7a0e846a16e83f25f06f6.1773055375.git.vmalik@redhat.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/progs/refcounted_kptr.c
tools/testing/selftests/bpf/progs/refcounted_kptr_fail.c

index 1aca85d86aebca1dfb54defd77e8e2fc23e418e0..c847398837ccd799196f8860586f5fc4ede52e40 100644 (file)
@@ -500,7 +500,7 @@ long rbtree_wrong_owner_remove_fail_a2(void *ctx)
        return 0;
 }
 
-SEC("?fentry.s/bpf_testmod_test_read")
+SEC("?fentry.s/" SYS_PREFIX "sys_getpgid")
 __success
 int BPF_PROG(rbtree_sleepable_rcu,
             struct file *file, struct kobject *kobj,
@@ -534,7 +534,7 @@ err_out:
        return 0;
 }
 
-SEC("?fentry.s/bpf_testmod_test_read")
+SEC("?fentry.s/" SYS_PREFIX "sys_getpgid")
 __success
 int BPF_PROG(rbtree_sleepable_rcu_no_explicit_rcu_lock,
             struct file *file, struct kobject *kobj,
index 836c8ab7b908c44a69b73ad7458c3d504c1c306f..b2808bfcec296d2ef12bfcddd90dcac4973ae7bd 100644 (file)
@@ -93,7 +93,7 @@ long rbtree_refcounted_node_ref_escapes_owning_input(void *ctx)
        return 0;
 }
 
-SEC("?fentry.s/bpf_testmod_test_read")
+SEC("?fentry.s/" SYS_PREFIX "sys_getpgid")
 __failure __msg("function calls are not allowed while holding a lock")
 int BPF_PROG(rbtree_fail_sleepable_lock_across_rcu,
             struct file *file, struct kobject *kobj,