[PATCH] bpf: fix errno code for unsupported batch ops

From: Pedro Tammela
Date: Sun Apr 18 2021 - 16:03:12 EST


ENOTSUPP is not a valid userland errno[1], which is annoying for
userland applications that implement a fallback to iterative, report
errors via 'strerror()' or both.

The batched ops return this errno whenever an operation
is not implemented for kernels that implement batched ops.

In older kernels, pre batched ops, it returns EINVAL as the arguments
are not supported in the syscall.

[1] https://lore.kernel.org/netdev/20200511165319.2251678-1-kuba@xxxxxxxxxx/

Signed-off-by: Pedro Tammela <pctammela@xxxxxxxxxxxx>
---
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 fd495190115e..88fe19c0aeb1 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -3961,7 +3961,7 @@ static int bpf_task_fd_query(const union bpf_attr *attr,
#define BPF_DO_BATCH(fn) \
do { \
if (!fn) { \
- err = -ENOTSUPP; \
+ err = -EOPNOTSUPP; \
goto err_put; \
} \
err = fn(map, attr, uattr); \
--
2.25.1