[PATCH bpf v2 0/2] bpf: Fix tracing of kfuncs with implicit args

From: Ihor Solodrai

Date: Fri Jul 10 2026 - 15:30:12 EST


Tejun reported an issue where a BPF program tracing a kfunc with
KF_IMPLICIT_ARGS can crash the kernel [1]. This is caused by a bug in
bpf_check_attach_target(): the btf_func_model for such a kfunc is
computed from a wrong BTF prototype. For more details see the commit
message of patch #1.

The second patch adds a selftest that can catch this situation.

The fix is a candidate for 7.1 backport.

[1] https://github.com/sched-ext/scx/issues/3687#issuecomment-4906694106

---

v1->v2:
* Take a module reference in btf_attach_func_proto() around the
btf_kfunc_accumulated_flags() call (sashiko)

v1: https://lore.kernel.org/bpf/20260710005902.2234832-1-ihor.solodrai@xxxxxxxxx/

---

Ihor Solodrai (1):
bpf: Fix tracing of kfuncs with implicit args

Kumar Kartikeya Dwivedi (1):
selftests/bpf: Cover tracing implicit kfunc args

include/linux/btf.h | 1 +
kernel/bpf/btf.c | 20 +++++
kernel/bpf/verifier.c | 64 +++++++++++----
.../prog_tests/kfunc_implicit_args_tracing.c | 36 +++++++++
.../bpf/progs/kfunc_implicit_args_tracing.c | 77 +++++++++++++++++++
5 files changed, 185 insertions(+), 13 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/kfunc_implicit_args_tracing.c
create mode 100644 tools/testing/selftests/bpf/progs/kfunc_implicit_args_tracing.c

--
2.55.0