The bpf_ksym_find must be called with RCU read protection, wrap the call to bpf_ksym_find in bpf_prog_ksym_find with RCU read lock so that callers do not have to care about holding it specifically. Signed-off-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx> --- kernel/bpf/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 8d381ca9f2fa..959538f91c60 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -782,7 +782,11 @@ bool is_bpf_text_address(unsigned long addr) struct bpf_prog *bpf_prog_ksym_find(unsigned long addr) { - struct bpf_ksym *ksym = bpf_ksym_find(addr); + struct bpf_ksym *ksym; + + rcu_read_lock(); + ksym = bpf_ksym_find(addr); + rcu_read_unlock(); return ksym && ksym->prog ? container_of(ksym, struct bpf_prog_aux, ksym)->prog : -- 2.47.1