| From d0ed45ba2be9a100f83b3b362722227b8f7e26f4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 18 Jul 2021 15:36:25 -0400 |
| Subject: bnxt_en: don't disable an already disabled PCI device |
| |
| From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
| |
| [ Upstream commit c81cfb6256d90ea5ba4a6fb280ea3b171be4e05c ] |
| |
| If device is already disabled in reset path and PCI io error is |
| detected before the device could be enabled, driver could |
| call pci_disable_device() for already disabled device. Fix this |
| problem by calling pci_disable_device() only if the device is already |
| enabled. |
| |
| Fixes: 6316ea6db93d ("bnxt_en: Enable AER support.") |
| Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@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> |
| --- |
| drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| index aef3fccc27a9..d57fb1613cfc 100644 |
| --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| @@ -13315,7 +13315,8 @@ static pci_ers_result_t bnxt_io_error_detected(struct pci_dev *pdev, |
| if (netif_running(netdev)) |
| bnxt_close(netdev); |
| |
| - pci_disable_device(pdev); |
| + if (pci_is_enabled(pdev)) |
| + pci_disable_device(pdev); |
| bnxt_free_ctx_mem(bp); |
| kfree(bp->ctx); |
| bp->ctx = NULL; |
| -- |
| 2.30.2 |
| |