aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/libbpf.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/bpf/libbpf.c')
-rw-r--r--tools/lib/bpf/libbpf.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index e6ad87512519..11c25d9ea431 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -840,12 +840,19 @@ static int bpf_object__elf_collect(struct bpf_object *obj, int flags)
840 obj->efile.maps_shndx = idx; 840 obj->efile.maps_shndx = idx;
841 else if (strcmp(name, BTF_ELF_SEC) == 0) { 841 else if (strcmp(name, BTF_ELF_SEC) == 0) {
842 obj->btf = btf__new(data->d_buf, data->d_size); 842 obj->btf = btf__new(data->d_buf, data->d_size);
843 if (IS_ERR(obj->btf) || btf__load(obj->btf)) { 843 if (IS_ERR(obj->btf)) {
844 pr_warning("Error loading ELF section %s: %ld. Ignored and continue.\n", 844 pr_warning("Error loading ELF section %s: %ld. Ignored and continue.\n",
845 BTF_ELF_SEC, PTR_ERR(obj->btf)); 845 BTF_ELF_SEC, PTR_ERR(obj->btf));
846 if (!IS_ERR(obj->btf))
847 btf__free(obj->btf);
848 obj->btf = NULL; 846 obj->btf = NULL;
847 continue;
848 }
849 err = btf__load(obj->btf);
850 if (err) {
851 pr_warning("Error loading %s into kernel: %d. Ignored and continue.\n",
852 BTF_ELF_SEC, err);
853 btf__free(obj->btf);
854 obj->btf = NULL;
855 err = 0;
849 } 856 }
850 } else if (strcmp(name, BTF_EXT_ELF_SEC) == 0) { 857 } else if (strcmp(name, BTF_EXT_ELF_SEC) == 0) {
851 btf_ext_data = data; 858 btf_ext_data = data;