Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b6d55f2 authored by Vadim Lomovtsev's avatar Vadim Lomovtsev Committed by David S. Miller
Browse files

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: default avatarVadim Lomovtsev <Vadim.Lomovtsev@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent aba4a263
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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;