igb: do a reset on SR-IOV re-init if device is down
authorStefan Assmann <sassmann@kpanic.de>
Thu, 10 Jul 2014 10:29:39 +0000 (03:29 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Jul 2014 19:45:24 +0000 (12:45 -0700)
To properly re-initialize SR-IOV it is necessary to reset the device
even if it is already down. Not doing this may result in Tx unit hangs.

Cc: stable <stable@vger.kernel.org>
Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/igb/igb_main.c

index 57a96e00df8cc5418f2296b8668bc2c708892bb8..a9537ba7a5a072630acc8842b875d98428922bb5 100644 (file)
@@ -7592,6 +7592,8 @@ static int igb_sriov_reinit(struct pci_dev *dev)
 
        if (netif_running(netdev))
                igb_close(netdev);
+       else
+               igb_reset(adapter);
 
        igb_clear_interrupt_scheme(adapter);