Re: [PATCH bpf v3 2/4] selftests/bpf: Test refcount_acquire return nullability
Ning Ding <[email protected]> Mon, 3 Aug 2026 15:48:27 -0700
| Newsgroups | org.kernel.vger.linux-kselftest,org.kernel.vger.bpf,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAJP4iuvNNcaHgv4T-VmD7ugLkHo7V5nz3ibCdgg6C=jxrkOahA@mail.gmail.com> |
> > + tmp = bpf_obj_new(typeof(*tmp)); > > + if (!tmp) > > + return 3; > > + bpf_obj_drop(tmp); This dummy code creates a temporary node_refcount_only object and immediately releases it, the actual bug test starts afterward. Its purpose is compiler scaffolding for BTF: The dummy bpf_obj_new() forces Clang to emit the complete BTF definition of that type, including its bpf_refcount field. bpf_obj_drop() then releases the temporary object so it won't affect the actual bug checking code. If we remove the dummy block, Clang might not include the complete node_refcount_only description in BTF. The program could then fail during loading (e.g. while creating the map, since it can't validate the kptr's complete type, or during verification, since the verifier is not sure the object contains bpf_refcount field) before reaching the actual test. (whether it still works depends on the clang version)