diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2017-06-21 18:25:07 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-23 13:42:19 -0400 |
commit | 6a8ef5428c9fb5b589c2c912889d157abb50dd61 (patch) | |
tree | fc279b0539e2cee1e100b74ebae62d26b7361135 /drivers/net/ethernet/netronome/nfp/nfp_net.h | |
parent | nfp: bpf: don't offload XDP programs in DRV_MODE (diff) | |
download | linux-dev-6a8ef5428c9fb5b589c2c912889d157abb50dd61.tar.xz linux-dev-6a8ef5428c9fb5b589c2c912889d157abb50dd61.zip |
nfp: bpf: release the reference on offloaded programs
The xdp_prog member of the adapter's data path structure is used
for XDP in driver mode. In case a XDP program is loaded with in
HW-only mode, we need to store it somewhere else. Add a new XDP
prog pointer in the main structure and use that when we need to
know whether any XDP program is loaded, not only a driver mode
one. Only release our reference on adapter free instead of
immediately after netdev unregister to allow offload to be disabled
first.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net.h')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_net.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h index 7952fbfb94d6..b7446793106d 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h @@ -542,6 +542,7 @@ struct nfp_net_dp { * @rss_key: RSS secret key * @rss_itbl: RSS indirection table * @xdp_flags: Flags with which XDP prog was loaded + * @xdp_prog: XDP prog (for ctrl path, both DRV and HW modes) * @max_r_vecs: Number of allocated interrupt vectors for RX/TX * @max_tx_rings: Maximum number of TX rings supported by the Firmware * @max_rx_rings: Maximum number of RX rings supported by the Firmware @@ -592,6 +593,7 @@ struct nfp_net { u8 rss_itbl[NFP_NET_CFG_RSS_ITBL_SZ]; u32 xdp_flags; + struct bpf_prog *xdp_prog; unsigned int max_tx_rings; unsigned int max_rx_rings; |