OSDN Git Service

bpftool: Fix strict mode calculation
authorMauricio Vásquez <mauricio@kinvolk.io>
Mon, 7 Feb 2022 14:50:51 +0000 (09:50 -0500)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 7 Feb 2022 20:12:22 +0000 (12:12 -0800)
"(__LIBBPF_STRICT_LAST - 1) & ~LIBBPF_STRICT_MAP_DEFINITIONS" is wrong
as it is equal to 0 (LIBBPF_STRICT_NONE). Let's use
"LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS" now that the
previous commit makes it possible in libbpf.

Fixes: 93b8952d223a ("libbpf: deprecate legacy BPF map definitions")
Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220207145052.124421-3-mauricio@kinvolk.io
tools/bpf/bpftool/main.c

index 9d01fa9..490f7bd 100644 (file)
@@ -478,14 +478,11 @@ int main(int argc, char **argv)
        }
 
        if (!legacy_libbpf) {
-               enum libbpf_strict_mode mode;
-
                /* Allow legacy map definitions for skeleton generation.
                 * It will still be rejected if users use LIBBPF_STRICT_ALL
                 * mode for loading generated skeleton.
                 */
-               mode = (__LIBBPF_STRICT_LAST - 1) & ~LIBBPF_STRICT_MAP_DEFINITIONS;
-               ret = libbpf_set_strict_mode(mode);
+               ret = libbpf_set_strict_mode(LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS);
                if (ret)
                        p_err("failed to enable libbpf strict mode: %d", ret);
        }