Currently generic_map_update_batch will reject all valid command flags for BPF_MAP_UPDATE_ELEM other than BPF_F_LOCK, which is overkill, map updating semantic does allow specify BPF_NOEXIST or BPF_EXIST even for batching update. Signed-off-by: Lin Feng <linf@xxxxxxxxxx> --- kernel/bpf/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 869265852d51..d85361f9a9b8 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -1852,7 +1852,7 @@ int generic_map_update_batch(struct bpf_map *map, struct file *map_file, void *key, *value; int err = 0; - if (attr->batch.elem_flags & ~BPF_F_LOCK) + if ((attr->batch.elem_flags & ~BPF_F_LOCK) > BPF_EXIST) return -EINVAL; if ((attr->batch.elem_flags & BPF_F_LOCK) && -- 2.42.0