[DTrace-devel] [PATCH] bpf: improve BPF feature check
Kris Van Hees
kris.van.hees at oracle.com
Tue Nov 26 19:57:30 UTC 2024
The check for BPF attach types was trying to attach to bpf_check, but
attaching to that function is rejected by the BPF verifier on some
kernel versions. Use bpf_get_btf_vmlinux because that function does
not take any arguments and therefore should always succeed.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
libdtrace/dt_bpf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libdtrace/dt_bpf.c b/libdtrace/dt_bpf.c
index 2a946f0d..662fd81a 100644
--- a/libdtrace/dt_bpf.c
+++ b/libdtrace/dt_bpf.c
@@ -488,8 +488,8 @@ dt_bpf_init_features(dtrace_hdl_t *dtp)
{
uint32_t btf_id;
- btf_id = dt_btf_lookup_name_kind(dtp, dtp->dt_shared_btf, "bpf_check",
- BTF_KIND_FUNC);
+ btf_id = dt_btf_lookup_name_kind(dtp, dtp->dt_shared_btf,
+ "bpf_get_btf_vmlinux", BTF_KIND_FUNC);
if (btf_id >= 0 &&
have_attach_type(BPF_PROG_TYPE_TRACING, BPF_TRACE_FENTRY, btf_id))
BPF_SET_FEATURE(dtp, BPF_FEAT_FENTRY);
--
2.45.2
More information about the DTrace-devel
mailing list