libbpf: Fix map creation flags sanitization
authorLudovic L'Hours <ludovic.lhours@gmail.com>
Sun, 8 Jan 2023 18:20:18 +0000 (19:20 +0100)
committerMartin KaFai Lau <martin.lau@kernel.org>
Wed, 11 Jan 2023 01:52:22 +0000 (17:52 -0800)
As BPF_F_MMAPABLE flag is now conditionnaly set (by map_is_mmapable),
it should not be toggled but disabled if not supported by kernel.

Fixes: 4fcac46c7e10 ("libbpf: only add BPF_F_MMAPABLE flag for data maps with global vars")
Signed-off-by: Ludovic L'Hours <ludovic.lhours@gmail.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20230108182018.24433-1-ludovic.lhours@gmail.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
tools/lib/bpf/libbpf.c

index a5c67a3..f8dfee3 100644 (file)
@@ -7355,7 +7355,7 @@ static int bpf_object__sanitize_maps(struct bpf_object *obj)
                if (!bpf_map__is_internal(m))
                        continue;
                if (!kernel_supports(obj, FEAT_ARRAY_MMAP))
-                       m->def.map_flags ^= BPF_F_MMAPABLE;
+                       m->def.map_flags &= ~BPF_F_MMAPABLE;
        }
 
        return 0;