summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x
diff options
context:
space:
mode:
authorYuval Mintz <yuvalmin@broadcom.com>2013-04-24 01:45:02 +0000
committerDavid S. Miller <davem@davemloft.net>2013-04-24 16:33:54 -0400
commit70632d0afe749c44562c1112eea0839774bcf578 (patch)
tree93bf76c9038844f3ac4eda0ce650915e5e06e3b6 /drivers/net/ethernet/broadcom/bnx2x
parent2f7a312230e0d24e8913e7eff7b24d34b7092fcd (diff)
downloadop-kernel-dev-70632d0afe749c44562c1112eea0839774bcf578.zip
op-kernel-dev-70632d0afe749c44562c1112eea0839774bcf578.tar.gz
bnx2x: Allow recovery from second slot reset
As part of PCIe Advanced Error Reporting flow, if a fatal PCI error occurs, the AER driver will cause bnx2x's PCI-core to reset. The driver's PCI error handlers will in turn restore the PCI configuration space values by calling `pci_restore_state'. However, as bnx2x does not save the PCI configuration after restoration, An additional fatal PCI error will leave the function in an unstable state until reboot, as the registers in the PCI configuration space will contain reset values. Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Ariel Elior <ariele@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index dedf683..fbfff1b 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -12807,6 +12807,7 @@ static pci_ers_result_t bnx2x_io_slot_reset(struct pci_dev *pdev)
pci_set_master(pdev);
pci_restore_state(pdev);
+ pci_save_state(pdev);
if (netif_running(dev))
bnx2x_set_power_state(bp, PCI_D0);
OpenPOWER on IntegriCloud