diff options
Diffstat (limited to 'tools/bpf/bpftool/struct_ops.c')
| -rw-r--r-- | tools/bpf/bpftool/struct_ops.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/tools/bpf/bpftool/struct_ops.c b/tools/bpf/bpftool/struct_ops.c index 2a7befbd11ad..e17738479edc 100644 --- a/tools/bpf/bpftool/struct_ops.c +++ b/tools/bpf/bpftool/struct_ops.c @@ -479,6 +479,7 @@ static int do_unregister(int argc, char **argv)  static int do_register(int argc, char **argv)  { +	struct bpf_object_load_attr load_attr = {};  	const struct bpf_map_def *def;  	struct bpf_map_info info = {};  	__u32 info_len = sizeof(info); @@ -499,7 +500,12 @@ static int do_register(int argc, char **argv)  	set_max_rlimit(); -	if (bpf_object__load(obj)) { +	load_attr.obj = obj; +	if (verifier_logs) +		/* log_level1 + log_level2 + stats, but not stable UAPI */ +		load_attr.log_level = 1 + 2 + 4; + +	if (bpf_object__load_xattr(&load_attr)) {  		bpf_object__close(obj);  		return -1;  	} @@ -591,6 +597,8 @@ int do_struct_ops(int argc, char **argv)  	err = cmd_select(cmds, argc, argv, do_help); -	btf__free(btf_vmlinux); +	if (!IS_ERR(btf_vmlinux)) +		btf__free(btf_vmlinux); +  	return err;  } |