From: Paul Chaignon Date: Thu, 16 Dec 2021 15:33:36 +0000 (+0100) Subject: lib/bpf: fix verbose flag when using libbpf X-Git-Tag: v5.16.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c04e45d083e82f3842f3661d5340a863b8e296a5;p=thirdparty%2Fiproute2.git lib/bpf: fix verbose flag when using libbpf Since commit 6d61a2b55799 ("lib: add libbpf support"), passing the verbose flag to tc filter doesn't dump the verifier logs anymore in case of successful loading. This commit fixes it by setting the log_level attribute before loading. To that end, we need to call bpf_object__load_xattr directly instead of relying on bpf_object__load. Fixes: 6d61a2b55799 ("lib: add libbpf support") Signed-off-by: Paul Chaignon Acked-by: Hangbin Liu Signed-off-by: Stephen Hemminger --- diff --git a/lib/bpf_libbpf.c b/lib/bpf_libbpf.c index dbec2cb56..50ef16bd4 100644 --- a/lib/bpf_libbpf.c +++ b/lib/bpf_libbpf.c @@ -246,6 +246,7 @@ static int handle_legacy_maps(struct bpf_object *obj) static int load_bpf_object(struct bpf_cfg_in *cfg) { + struct bpf_object_load_attr attr = {}; struct bpf_program *p, *prog = NULL; struct bpf_object *obj; char root_path[PATH_MAX]; @@ -302,7 +303,11 @@ static int load_bpf_object(struct bpf_cfg_in *cfg) if (ret) goto unload_obj; - ret = bpf_object__load(obj); + attr.obj = obj; + if (cfg->verbose) + attr.log_level = 2; + + ret = bpf_object__load_xattr(&attr); if (ret) goto unload_obj;