]> git.baikalelectronics.ru Git - kernel.git/commitdiff
bnxt_en: Improve device shutdown method.
authorVasundhara Volam <vasundhara-v.volam@broadcom.com>
Thu, 20 Feb 2020 22:26:34 +0000 (17:26 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Mar 2020 15:43:34 +0000 (16:43 +0100)
[ Upstream commit 7dd23196b77fd0875a578d3f5c6d664acef1f452 ]

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: 704f7af87030 ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 68618891b0e424d742195dc60a4ac3da5ee0d17c..e03e610dd18311ae756376ef2d75add610774a11 100644 (file)
@@ -11908,10 +11908,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);
        }