From: David Ahern Date: Mon, 7 Feb 2022 01:00:32 +0000 (-0700) Subject: bpf: Remove use of bpf_create_map_xattr X-Git-Tag: v5.18.0~35^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d9977eafa719c029fba8c14de5b46dc1c851c68f;p=thirdparty%2Fiproute2.git bpf: Remove use of bpf_create_map_xattr 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 --- diff --git a/lib/bpf_libbpf.c b/lib/bpf_libbpf.c index 921716aec..f4f98caa1 100644 --- a/lib/bpf_libbpf.c +++ b/lib/bpf_libbpf.c @@ -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,