@@ -805,29 +805,28 @@ static int maps_have_btf(int *fds, int nb_fds)
805
805
806
806
static struct btf * btf_vmlinux ;
807
807
808
- static struct btf * get_map_kv_btf (const struct bpf_map_info * info )
808
+ static int get_map_kv_btf (const struct bpf_map_info * info , struct btf * * btf )
809
809
{
810
- struct btf * btf = NULL ;
810
+ int err = 0 ;
811
811
812
812
if (info -> btf_vmlinux_value_type_id ) {
813
813
if (!btf_vmlinux ) {
814
814
btf_vmlinux = libbpf_find_kernel_btf ();
815
- if (libbpf_get_error (btf_vmlinux ))
815
+ err = libbpf_get_error (btf_vmlinux );
816
+ if (err ) {
816
817
p_err ("failed to get kernel btf" );
818
+ return err ;
819
+ }
817
820
}
818
- return btf_vmlinux ;
821
+ * btf = btf_vmlinux ;
819
822
} else if (info -> btf_value_type_id ) {
820
- int err ;
821
-
822
- btf = btf__load_from_kernel_by_id (info -> btf_id );
823
- err = libbpf_get_error (btf );
824
- if (err ) {
823
+ * btf = btf__load_from_kernel_by_id (info -> btf_id );
824
+ err = libbpf_get_error (* btf );
825
+ if (err )
825
826
p_err ("failed to get btf" );
826
- btf = ERR_PTR (err );
827
- }
828
827
}
829
828
830
- return btf ;
829
+ return err ;
831
830
}
832
831
833
832
static void free_map_kv_btf (struct btf * btf )
@@ -862,8 +861,7 @@ map_dump(int fd, struct bpf_map_info *info, json_writer_t *wtr,
862
861
prev_key = NULL ;
863
862
864
863
if (wtr ) {
865
- btf = get_map_kv_btf (info );
866
- err = libbpf_get_error (btf );
864
+ err = get_map_kv_btf (info , & btf );
867
865
if (err ) {
868
866
goto exit_free ;
869
867
}
@@ -1054,8 +1052,7 @@ static void print_key_value(struct bpf_map_info *info, void *key,
1054
1052
json_writer_t * btf_wtr ;
1055
1053
struct btf * btf ;
1056
1054
1057
- btf = get_map_kv_btf (info );
1058
- if (libbpf_get_error (btf ))
1055
+ if (get_map_kv_btf (info , & btf ))
1059
1056
return ;
1060
1057
1061
1058
if (json_output ) {
0 commit comments