• Arnd Bergmann's avatar
    nfp: bpf: improve handling for disabled BPF syscall · b47c62c5
    Arnd Bergmann authored
    I stumbled over a new warning during randconfig testing,
    with CONFIG_BPF_SYSCALL disabled:
    
    drivers/net/ethernet/netronome/nfp/nfp_net_offload.c: In function 'nfp_net_bpf_offload':
    drivers/net/ethernet/netronome/nfp/nfp_net_offload.c:263:3: error: '*((void *)&res+4)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    drivers/net/ethernet/netronome/nfp/nfp_net_offload.c:263:3: error: 'res.n_instr' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    
    As far as I can tell, this is a false positive caused by the compiler
    getting confused about a function that is partially inlined, but it's
    easy to avoid while improving the code:
    
    The nfp_bpf_jit() stub helper for that configuration is unusual as it
    is defined in a header file but not marked 'static inline'. By moving
    the compile-time check into the caller using the IS_ENABLED() macro,
    we can remove that stub and simplify the nfp_net_bpf_offload_prepare()
    function enough to unconfuse the compiler.
    
    Fixes: 7533fdc0 ("nfp: bpf: add hardware bpf offload")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b47c62c5
nfp_net_offload.c 7.75 KB