bpf: don't allow create maps of per-cpu cgroup local storages
authorRoman Gushchin <guro@fb.com>
Fri, 28 Sep 2018 14:45:46 +0000 (14:45 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 1 Oct 2018 14:18:33 +0000 (16:18 +0200)
Explicitly forbid creating map of per-cpu cgroup local storages.
This behavior matches the behavior of shared cgroup storages.

Signed-off-by: Roman Gushchin <guro@fb.com>
Acked-by: Song Liu <songliubraving@fb.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
kernel/bpf/map_in_map.c

index 3bfbf44..99d243e 100644 (file)
@@ -24,7 +24,8 @@ struct bpf_map *bpf_map_meta_alloc(int inner_map_ufd)
         * in the verifier is not enough.
         */
        if (inner_map->map_type == BPF_MAP_TYPE_PROG_ARRAY ||
-           inner_map->map_type == BPF_MAP_TYPE_CGROUP_STORAGE) {
+           inner_map->map_type == BPF_MAP_TYPE_CGROUP_STORAGE ||
+           inner_map->map_type == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) {
                fdput(f);
                return ERR_PTR(-ENOTSUPP);
        }