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

Commit 670b5274 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

nfp: implement netpoll ndo (thus enabling netconsole)



NFP NAPI handling will only complete the TXed packets when called
with budget of 0, implement ndo_poll_controller by scheduling NAPI
on all TX queues.

Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 18aa5b18
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -3115,6 +3115,21 @@ nfp_net_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto, u16 vid)
	return nfp_net_reconfig_mbox(nn, NFP_NET_CFG_MBOX_CMD_CTAG_FILTER_KILL);
}

#ifdef CONFIG_NET_POLL_CONTROLLER
static void nfp_net_netpoll(struct net_device *netdev)
{
	struct nfp_net *nn = netdev_priv(netdev);
	int i;

	/* nfp_net's NAPIs are statically allocated so even if there is a race
	 * with reconfig path this will simply try to schedule some disabled
	 * NAPI instances.
	 */
	for (i = 0; i < nn->dp.num_stack_tx_rings; i++)
		napi_schedule_irqoff(&nn->r_vecs[i].napi);
}
#endif

static void nfp_net_stat64(struct net_device *netdev,
			   struct rtnl_link_stats64 *stats)
{
@@ -3482,6 +3497,9 @@ const struct net_device_ops nfp_net_netdev_ops = {
	.ndo_get_stats64	= nfp_net_stat64,
	.ndo_vlan_rx_add_vid	= nfp_net_vlan_rx_add_vid,
	.ndo_vlan_rx_kill_vid	= nfp_net_vlan_rx_kill_vid,
#ifdef CONFIG_NET_POLL_CONTROLLER
	.ndo_poll_controller	= nfp_net_netpoll,
#endif
	.ndo_set_vf_mac         = nfp_app_set_vf_mac,
	.ndo_set_vf_vlan        = nfp_app_set_vf_vlan,
	.ndo_set_vf_spoofchk    = nfp_app_set_vf_spoofchk,