| From 53b0051cfdc1fbd78800f414c4d9b762e1432ca3 Mon Sep 17 00:00:00 2001 |
| From: Jakub Kicinski <jakub.kicinski@netronome.com> |
| Date: Wed, 27 Mar 2019 11:38:39 -0700 |
| Subject: nfp: disable netpoll on representors |
| |
| [ Upstream commit c3e1f7fff69c78169c8ac40cc74ac4307f74e36d ] |
| |
| NFP reprs are software device on top of the PF's vNIC. |
| The comment above __dev_queue_xmit() sayeth: |
| |
| When calling this method, interrupts MUST be enabled. This is because |
| the BH enable code must have IRQs enabled so that it will not deadlock. |
| |
| For netconsole we can't guarantee IRQ state, let's just |
| disable netpoll on representors to be on the safe side. |
| |
| When the initial implementation of NFP reprs was added by the |
| commit 5de73ee46704 ("nfp: general representor implementation") |
| .ndo_poll_controller was required for netpoll to be enabled. |
| |
| Fixes: ac3d9dd034e5 ("netpoll: make ndo_poll_controller() optional") |
| Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> |
| Reviewed-by: John Hurley <john.hurley@netronome.com> |
| Reviewed-by: Simon Horman <simon.horman@netronome.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c |
| index 7d62e3698f08..73db94e55fd0 100644 |
| --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c |
| +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c |
| @@ -384,7 +384,7 @@ int nfp_repr_init(struct nfp_app *app, struct net_device *netdev, |
| netdev->features &= ~(NETIF_F_TSO | NETIF_F_TSO6); |
| netdev->gso_max_segs = NFP_NET_LSO_MAX_SEGS; |
| |
| - netdev->priv_flags |= IFF_NO_QUEUE; |
| + netdev->priv_flags |= IFF_NO_QUEUE | IFF_DISABLE_NETPOLL; |
| netdev->features |= NETIF_F_LLTX; |
| |
| if (nfp_app_has_tc(app)) { |
| -- |
| 2.19.1 |
| |