mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
bpf: Do not alloc arena on unsupported arches
Do not allocate BPF arena on arches that do not support it, instead return EOPNOTSUPP. This is useful to prevent bugs such as soft lockups while trying to free the arena which we have witnessed on ppc64le [1]. [1] https://lore.kernel.org/bpf/4afdcb50-13f2-4772-8db1-3fd02bd985b3@redhat.com/ Signed-off-by: Viktor Malik <vmalik@redhat.com> Link: https://lore.kernel.org/r/20241115082548.74972-1-vmalik@redhat.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
f01750aecd
commit
ab4dc30c53
@ -3,6 +3,7 @@
|
||||
#include <linux/bpf.h>
|
||||
#include <linux/btf.h>
|
||||
#include <linux/err.h>
|
||||
#include "linux/filter.h"
|
||||
#include <linux/btf_ids.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/pagemap.h>
|
||||
@ -99,6 +100,9 @@ static struct bpf_map *arena_map_alloc(union bpf_attr *attr)
|
||||
u64 vm_range;
|
||||
int err = -ENOMEM;
|
||||
|
||||
if (!bpf_jit_supports_arena())
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
|
||||
if (attr->key_size || attr->value_size || attr->max_entries == 0 ||
|
||||
/* BPF_F_MMAPABLE must be set */
|
||||
!(attr->map_flags & BPF_F_MMAPABLE) ||
|
||||
|
Loading…
Reference in New Issue
Block a user