]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
bpf: Remove use of bpf_create_map_xattr
authorDavid Ahern <dsahern@kernel.org>
Mon, 7 Feb 2022 01:00:32 +0000 (18:00 -0700)
committerDavid Ahern <dsahern@kernel.org>
Mon, 7 Mar 2022 15:52:08 +0000 (08:52 -0700)
bpf_create_map_xattr is deprecated in v0.7 in favor of bpf_map_create.
bpf_map_create and its bpf_map_create_opts are not available across the
range of v0.1 and up versions of libbpf, so change create_map to use
the bpf syscall directly.

Signed-off-by: David Ahern <dsahern@kernel.org>
lib/bpf_libbpf.c

index 921716aec8c6029403f44e82898ca8785af0a745..f4f98caa1e58631355ceff105de8207c0ffcd9bb 100644 (file)
@@ -54,18 +54,18 @@ static const char *get_bpf_program__section_name(const struct bpf_program *prog)
 static int create_map(const char *name, struct bpf_elf_map *map,
                      __u32 ifindex, int inner_fd)
 {
-       struct bpf_create_map_attr map_attr = {};
-
-       map_attr.name = name;
-       map_attr.map_type = map->type;
-       map_attr.map_flags = map->flags;
-       map_attr.key_size = map->size_key;
-       map_attr.value_size = map->size_value;
-       map_attr.max_entries = map->max_elem;
-       map_attr.map_ifindex = ifindex;
-       map_attr.inner_map_fd = inner_fd;
-
-       return bpf_create_map_xattr(&map_attr);
+       union bpf_attr attr = {};
+
+       attr.map_type = map->type;
+       strlcpy(attr.map_name, name, sizeof(attr.map_name));
+       attr.map_flags = map->flags;
+       attr.key_size = map->size_key;
+       attr.value_size = map->size_value;
+       attr.max_entries = map->max_elem;
+       attr.map_ifindex = ifindex;
+       attr.inner_map_fd = inner_fd;
+
+       return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
 }
 
 static int create_map_in_map(struct bpf_object *obj, struct bpf_map *map,