• Jesper Dangaard Brouer's avatar
    bpf: Devmap adjust uapi for attach bpf program · 281920b7
    Jesper Dangaard Brouer authored
    V2:
    - Defer changing BPF-syscall to start at file-descriptor 1
    - Use {} to zero initialise struct.
    
    The recent commit fbee97fe ("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: fbee97fe ("bpf: Add support to attach bpf program to a devmap entry")
    Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/159170950687.2102545.7235914718298050113.stgit@firesoul
    281920b7
devmap.c 22.8 KB