Skip to content

Commit 1b6d55f

Browse files
Vadim Lomovtsevdavem330
authored andcommitted
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent aba4a26 commit 1b6d55f

File tree

1 file changed

+17
-0
lines changed
  • drivers/net/ethernet/cavium/thunder

1 file changed

+17
-0
lines changed

drivers/net/ethernet/cavium/thunder/nic.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,22 @@ struct nicvf_drv_stats {
265265

266266
struct cavium_ptp;
267267

268+
struct xcast_addr {
269+
struct list_head list;
270+
u64 addr;
271+
};
272+
273+
struct xcast_addr_list {
274+
struct list_head list;
275+
int count;
276+
};
277+
278+
struct nicvf_work {
279+
struct delayed_work work;
280+
u8 mode;
281+
struct xcast_addr_list *mc;
282+
};
283+
268284
struct nicvf {
269285
struct nicvf *pnicvf;
270286
struct net_device *netdev;
@@ -313,6 +329,7 @@ struct nicvf {
313329
struct nicvf_pfc pfc;
314330
struct tasklet_struct qs_err_task;
315331
struct work_struct reset_task;
332+
struct nicvf_work rx_mode_work;
316333

317334
/* PTP timestamp */
318335
struct cavium_ptp *ptp_clock;

0 commit comments

Comments
 (0)