]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.19.35/nfp-disable-netpoll-on-representors.patch
Linux 4.19.35
[thirdparty/kernel/stable-queue.git] / releases / 4.19.35 / nfp-disable-netpoll-on-representors.patch
CommitLineData
a9fba688
SL
1From 9f43d646782e3a8e4a2c276eade6a034b5340fa2 Mon Sep 17 00:00:00 2001
2From: Jakub Kicinski <jakub.kicinski@netronome.com>
3Date: Wed, 27 Mar 2019 11:38:39 -0700
4Subject: nfp: disable netpoll on representors
5
6[ Upstream commit c3e1f7fff69c78169c8ac40cc74ac4307f74e36d ]
7
8NFP reprs are software device on top of the PF's vNIC.
9The comment above __dev_queue_xmit() sayeth:
10
11 When calling this method, interrupts MUST be enabled. This is because
12 the BH enable code must have IRQs enabled so that it will not deadlock.
13
14For netconsole we can't guarantee IRQ state, let's just
15disable netpoll on representors to be on the safe side.
16
17When the initial implementation of NFP reprs was added by the
18commit 5de73ee46704 ("nfp: general representor implementation")
19.ndo_poll_controller was required for netpoll to be enabled.
20
21Fixes: ac3d9dd034e5 ("netpoll: make ndo_poll_controller() optional")
22Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
23Reviewed-by: John Hurley <john.hurley@netronome.com>
24Reviewed-by: Simon Horman <simon.horman@netronome.com>
25Signed-off-by: David S. Miller <davem@davemloft.net>
26Signed-off-by: Sasha Levin <sashal@kernel.org>
27---
28 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 2 ++
29 1 file changed, 2 insertions(+)
30
31diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
32index e0d73b385563..aa5869eb2e3f 100644
33--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
34+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
35@@ -329,6 +329,8 @@ int nfp_repr_init(struct nfp_app *app, struct net_device *netdev,
36
37 SWITCHDEV_SET_OPS(netdev, &nfp_port_switchdev_ops);
38
39+ netdev->priv_flags |= IFF_DISABLE_NETPOLL;
40+
41 if (nfp_app_has_tc(app)) {
42 netdev->features |= NETIF_F_HW_TC;
43 netdev->hw_features |= NETIF_F_HW_TC;
44--
452.19.1
46