diff options
author | Vadim Lomovtsev <Vadim.Lomovtsev@cavium.com> | 2018-03-30 13:59:52 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-04-01 04:18:17 +0200 |
commit | 1b6d55f23948df5ea2b9f59b766bed91fb609b99 (patch) | |
tree | 858df02e540d36a51ea35cb004f2b101d2ee39e3 /drivers/net/ethernet/cavium/thunder/nic.h | |
parent | net: thunderx: add XCAST messages handlers for PF (diff) | |
download | linux-1b6d55f23948df5ea2b9f59b766bed91fb609b99.tar.xz linux-1b6d55f23948df5ea2b9f59b766bed91fb609b99.zip |
net: thunderx: add workqueue control structures for handle ndo_set_rx_mode request
The kernel calls ndo_set_rx_mode() callback from atomic context which
causes messaging timeouts between VF and PF (as they’re implemented via
MSIx). So in order to handle ndo_set_rx_mode() we need to get rid of it.
This commit implements necessary workqueue related structures to let VF
queue kernel request processing in non-atomic context later.
Signed-off-by: Vadim Lomovtsev <Vadim.Lomovtsev@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/cavium/thunder/nic.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/thunder/nic.h b/drivers/net/ethernet/cavium/thunder/nic.h index 069289b4f968..5fc46c5a4f36 100644 --- a/drivers/net/ethernet/cavium/thunder/nic.h +++ b/drivers/net/ethernet/cavium/thunder/nic.h @@ -265,6 +265,22 @@ struct nicvf_drv_stats { struct cavium_ptp; +struct xcast_addr { + struct list_head list; + u64 addr; +}; + +struct xcast_addr_list { + struct list_head list; + int count; +}; + +struct nicvf_work { + struct delayed_work work; + u8 mode; + struct xcast_addr_list *mc; +}; + struct nicvf { struct nicvf *pnicvf; struct net_device *netdev; @@ -313,6 +329,7 @@ struct nicvf { struct nicvf_pfc pfc; struct tasklet_struct qs_err_task; struct work_struct reset_task; + struct nicvf_work rx_mode_work; /* PTP timestamp */ struct cavium_ptp *ptp_clock; |