aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/ethernet/broadcom/bnxt/bnxt.c
diff options
context:
space:
mode:
authorMichael Chan <michael.chan@broadcom.com>2020-04-26 16:24:40 -0400
committerDavid S. Miller <davem@davemloft.net>2020-04-27 11:44:05 -0700
commitbae361c54fb6ac6eba3b4762f49ce14beb73ef13 (patch)
tree50dd125bfe3b4feaddcf610cea5a375d727d771f /drivers/net/ethernet/broadcom/bnxt/bnxt.c
parentbnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF. (diff)
downloadwireguard-linux-bae361c54fb6ac6eba3b4762f49ce14beb73ef13.tar.xz
wireguard-linux-bae361c54fb6ac6eba3b4762f49ce14beb73ef13.zip
bnxt_en: Improve AER slot reset.
Improve the slot reset sequence by disabling the device to prevent bad DMAs if slot reset fails. Return the proper result instead of always PCI_ERS_RESULT_RECOVERED to the caller. Fixes: 6316ea6db93d ("bnxt_en: Enable AER support.") Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index fead64f1ad90..d8db08ec8693 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -12212,12 +12212,15 @@ static pci_ers_result_t bnxt_io_slot_reset(struct pci_dev *pdev)
bnxt_ulp_start(bp, err);
}
- if (result != PCI_ERS_RESULT_RECOVERED && netif_running(netdev))
- dev_close(netdev);
+ if (result != PCI_ERS_RESULT_RECOVERED) {
+ if (netif_running(netdev))
+ dev_close(netdev);
+ pci_disable_device(pdev);
+ }
rtnl_unlock();
- return PCI_ERS_RESULT_RECOVERED;
+ return result;
}
/**