bnx2x: Move to D0 before clearing MSI/MSI-X configuration.
authorVladislav Zolotarov <vladz@broadcom.com>
Sun, 9 Jan 2011 02:20:19 +0000 (02:20 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 9 Jan 2011 23:47:39 +0000 (15:47 -0800)
Move to D0 before clearing MSI/MSI-X configuration. Otherwise MSI/MSI-X
won't be cleared.

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x/bnx2x_main.c

index b5558bc7223d47b0254f5d2cac31332e479976f8..84e1af4d65e1fc34f761c52bba731ed7489174ad 100644 (file)
@@ -9508,9 +9508,15 @@ static void __devexit bnx2x_remove_one(struct pci_dev *pdev)
        /* Delete all NAPI objects */
        bnx2x_del_all_napi(bp);
 
+       /* Power on: we can't let PCI layer write to us while we are in D3 */
+       bnx2x_set_power_state(bp, PCI_D0);
+
        /* Disable MSI/MSI-X */
        bnx2x_disable_msi(bp);
 
+       /* Power off */
+       bnx2x_set_power_state(bp, PCI_D3hot);
+
        /* Make sure RESET task is not scheduled before continuing */
        cancel_delayed_work_sync(&bp->reset_task);