ixgbe: Do not attempt to perform interrupts in netpoll when down
This patch resolves issues seen when running netconsole and rebooting via reboot -f. The issue was due to the fact that we were attempting to perform interrupt actions when the q_vectors and rings had already been freed via the ixgbe_shutdown routines. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Acked-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ff30b3642c
commit
1a647bd213
1 changed files with 4 additions and 0 deletions
|
@ -5576,6 +5576,10 @@ static void ixgbe_netpoll(struct net_device *netdev)
|
||||||
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
struct ixgbe_adapter *adapter = netdev_priv(netdev);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* if interface is down do nothing */
|
||||||
|
if (test_bit(__IXGBE_DOWN, &adapter->state))
|
||||||
|
return;
|
||||||
|
|
||||||
adapter->flags |= IXGBE_FLAG_IN_NETPOLL;
|
adapter->flags |= IXGBE_FLAG_IN_NETPOLL;
|
||||||
if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
|
if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
|
||||||
int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS;
|
int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS;
|
||||||
|
|
Reference in a new issue