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