diff options
author | Vasundhara Volam <vasundhara-v.volam@broadcom.com> | 2020-08-26 01:08:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-09-12 11:47:34 +0200 |
commit | ba13c07c58562d2c5e04928eccca01a5577ca5ba (patch) | |
tree | ccd72ce91699c9509276c27af9bda632fdeee43a | |
parent | 7f3aa14ce1c8a2a2d22da48ca42727d8875d6228 (diff) | |
download | linux-stable-ba13c07c58562d2c5e04928eccca01a5577ca5ba.tar.gz linux-stable-ba13c07c58562d2c5e04928eccca01a5577ca5ba.tar.bz2 linux-stable-ba13c07c58562d2c5e04928eccca01a5577ca5ba.zip |
bnxt_en: Fix PCI AER error recovery flow
[ Upstream commit df3875ec550396974b1d8a518bd120d034738236 ]
When a PCI error is detected the PCI state could be corrupt, save
the PCI state after initialization and restore it after the slot
reset.
Fixes: 6316ea6db93d ("bnxt_en: Enable AER support.")
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: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 421cbba9a3bc..f451be63ab7e 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7085,6 +7085,7 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) bnxt_parse_log_pcie_link(bp); + pci_save_state(pdev); return 0; init_err: @@ -7158,6 +7159,8 @@ static pci_ers_result_t bnxt_io_slot_reset(struct pci_dev *pdev) "Cannot re-enable PCI device after reset.\n"); } else { pci_set_master(pdev); + pci_restore_state(pdev); + pci_save_state(pdev); if (netif_running(netdev)) err = bnxt_open(netdev); |