]>
Commit | Line | Data |
---|---|---|
a9fba688 SL |
1 | From 9f43d646782e3a8e4a2c276eade6a034b5340fa2 Mon Sep 17 00:00:00 2001 |
2 | From: Jakub Kicinski <jakub.kicinski@netronome.com> | |
3 | Date: Wed, 27 Mar 2019 11:38:39 -0700 | |
4 | Subject: nfp: disable netpoll on representors | |
5 | ||
6 | [ Upstream commit c3e1f7fff69c78169c8ac40cc74ac4307f74e36d ] | |
7 | ||
8 | NFP reprs are software device on top of the PF's vNIC. | |
9 | The 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 | ||
14 | For netconsole we can't guarantee IRQ state, let's just | |
15 | disable netpoll on representors to be on the safe side. | |
16 | ||
17 | When the initial implementation of NFP reprs was added by the | |
18 | commit 5de73ee46704 ("nfp: general representor implementation") | |
19 | .ndo_poll_controller was required for netpoll to be enabled. | |
20 | ||
21 | Fixes: ac3d9dd034e5 ("netpoll: make ndo_poll_controller() optional") | |
22 | Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> | |
23 | Reviewed-by: John Hurley <john.hurley@netronome.com> | |
24 | Reviewed-by: Simon Horman <simon.horman@netronome.com> | |
25 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
26 | Signed-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 | ||
31 | diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | |
32 | index 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 | -- | |
45 | 2.19.1 | |
46 |