fm10k: free MBX IRQ before clearing interrupt scheme
authorJacob Keller <jacob.e.keller@intel.com>
Thu, 4 Feb 2016 18:47:58 +0000 (10:47 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 5 Apr 2016 19:49:22 +0000 (12:49 -0700)
During fm10k_io_error_detected we were clearing the interrupt scheme
before we freed the MBX IRQ. This causes a kernel panic because the MBX
IRQ are assigned after MSI-X initialization. Clearing the interrupt
scheme results in removing the MSI-X entry table. Fix this by freeing
the MBX IRQ before we clear the interrupt scheme, as we do elsewhere in
the driver.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/fm10k/fm10k_pci.c

index 3c7c819ac8d9d25ad63518bf740f6ab802a6aada..da38af0525193770422c4bbbbc26f0010703bfd7 100644 (file)
@@ -2274,11 +2274,11 @@ static pci_ers_result_t fm10k_io_error_detected(struct pci_dev *pdev,
        if (netif_running(netdev))
                fm10k_close(netdev);
 
+       fm10k_mbx_free_irq(interface);
+
        /* free interrupts */
        fm10k_clear_queueing_scheme(interface);
 
-       fm10k_mbx_free_irq(interface);
-
        pci_disable_device(pdev);
 
        /* Request a slot reset. */