Register kfunc in self-developed module but run error in other modules: libbpf: btf: type [164451]: referenced type [164446] is not FUNC_PROTO libbpf: failed to load module [syscon_reboot_mode]'s BTF object #2: -22 It is usually skipping the error does not affect the search for the next module. Then ignoring the failed modules, load the bpf process: libbpf: btf: type [164451]: referenced type [164446] is not FUNC_PROTO libbpf: failed to load module [syscon_reboot_mode]'s BTF object #3: -22 libbpf: extern (func ksym) 'bpf_kfunc': resolved to bpf_module [164442] ... Signed-off-by: Bixuan Cui --- tools/lib/bpf/libbpf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 711173acbcef..0fa0d89da068 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -5702,7 +5702,8 @@ static int load_module_btfs(struct bpf_object *obj) if (err) { pr_warn("failed to load module [%s]'s BTF object #%d: %d\n", name, id, err); - goto err_out; + close(fd); + continue; } err = libbpf_ensure_mem((void **)&obj->btf_modules, &obj->btf_module_cap, -- 2.39.0