bpf: Devmap adjust uapi for attach bpf program
authorJesper Dangaard Brouer <brouer@redhat.com>
Tue, 9 Jun 2020 13:31:46 +0000 (15:31 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 9 Jun 2020 18:36:18 +0000 (11:36 -0700)
commit281920b7e0b31e0a7706433ff58e7d52ac97c327
tree64eae501b2e4edc6a07a2c530f29bb3c009e0a11
parent248e00ac47d64e153b9c50f45aad73cd61894a73
bpf: Devmap adjust uapi for attach bpf program

V2:
- Defer changing BPF-syscall to start at file-descriptor 1
- Use {} to zero initialise struct.

The recent commit fbee97feed9b ("bpf: Add support to attach bpf program to a
devmap entry"), introduced ability to attach (and run) a separate XDP
bpf_prog for each devmap entry. A bpf_prog is added via a file-descriptor.
As zero were a valid FD, not using the feature requires using value minus-1.
The UAPI is extended via tail-extending struct bpf_devmap_val and using
map->value_size to determine the feature set.

This will break older userspace applications not using the bpf_prog feature.
Consider an old userspace app that is compiled against newer kernel
uapi/bpf.h, it will not know that it need to initialise the member
bpf_prog.fd to minus-1. Thus, users will be forced to update source code to
get program running on newer kernels.

This patch remove the minus-1 checks, and have zero mean feature isn't used.

Followup patches either for kernel or libbpf should handle and avoid
returning file-descriptor zero in the first place.

Fixes: fbee97feed9b ("bpf: Add support to attach bpf program to a devmap entry")
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/159170950687.2102545.7235914718298050113.stgit@firesoul
include/uapi/linux/bpf.h
kernel/bpf/devmap.c