]>
Commit | Line | Data |
---|---|---|
6b6035bf SL |
1 | From 53b0051cfdc1fbd78800f414c4d9b762e1432ca3 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, 1 insertion(+), 1 deletion(-) | |
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 7d62e3698f08..73db94e55fd0 100644 | |
33 | --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | |
34 | +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | |
35 | @@ -384,7 +384,7 @@ int nfp_repr_init(struct nfp_app *app, struct net_device *netdev, | |
36 | netdev->features &= ~(NETIF_F_TSO | NETIF_F_TSO6); | |
37 | netdev->gso_max_segs = NFP_NET_LSO_MAX_SEGS; | |
38 | ||
39 | - netdev->priv_flags |= IFF_NO_QUEUE; | |
40 | + netdev->priv_flags |= IFF_NO_QUEUE | IFF_DISABLE_NETPOLL; | |
41 | netdev->features |= NETIF_F_LLTX; | |
42 | ||
43 | if (nfp_app_has_tc(app)) { | |
44 | -- | |
45 | 2.19.1 | |
46 |