bnxt_en: Improve device shutdown method.
authorVasundhara Volam <vasundhara-v.volam@broadcom.com>
Thu, 20 Feb 2020 22:26:34 +0000 (17:26 -0500)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Feb 2020 00:05:42 +0000 (16:05 -0800)
Especially when bnxt_shutdown() is called during kexec, we need to
disable MSIX and disable Bus Master to completely quiesce the device.
Make these 2 calls unconditionally in the shutdown method.

Fixes: c20dc142dd7b ("bnxt_en: Disable bus master during PCI shutdown and driver unload.")
Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 597e6fd5bfea8344d21efc5da7918b3291ba3601..2ad007e5ee7fd20588eefa7f8919b84585a1899c 100644 (file)
@@ -11983,10 +11983,10 @@ static void bnxt_shutdown(struct pci_dev *pdev)
                dev_close(dev);
 
        bnxt_ulp_shutdown(bp);
+       bnxt_clear_int_mode(bp);
+       pci_disable_device(pdev);
 
        if (system_state == SYSTEM_POWER_OFF) {
-               bnxt_clear_int_mode(bp);
-               pci_disable_device(pdev);
                pci_wake_from_d3(pdev, bp->wol);
                pci_set_power_state(pdev, PCI_D3hot);
        }