bpf: offload: allow array map offload
The special handling of different map types is left to the driver. Allow offload of array maps by simply adding it to accepted types. For nfp we have to make sure array elements are not deleted. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
32852649ba
commit
7a0ef69395
|
@ -176,6 +176,8 @@ nfp_bpf_map_get_next_key(struct bpf_offloaded_map *offmap,
|
|||
static int
|
||||
nfp_bpf_map_delete_elem(struct bpf_offloaded_map *offmap, void *key)
|
||||
{
|
||||
if (offmap->map.map_type == BPF_MAP_TYPE_ARRAY)
|
||||
return -EINVAL;
|
||||
return nfp_bpf_ctrl_del_entry(offmap, key);
|
||||
}
|
||||
|
||||
|
|
|
@ -299,7 +299,8 @@ struct bpf_map *bpf_map_offload_map_alloc(union bpf_attr *attr)
|
|||
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return ERR_PTR(-EPERM);
|
||||
if (attr->map_type != BPF_MAP_TYPE_HASH)
|
||||
if (attr->map_type != BPF_MAP_TYPE_ARRAY &&
|
||||
attr->map_type != BPF_MAP_TYPE_HASH)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
offmap = kzalloc(sizeof(*offmap), GFP_USER);
|
||||
|
|
Loading…
Reference in New Issue