]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
PCI/AER: Remove pci_cleanup_aer_uncorrect_error_status() calls
authorOza Pawandeep <poza@codeaurora.org>
Fri, 28 Sep 2018 18:00:56 +0000 (13:00 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 2 Oct 2018 21:04:40 +0000 (16:04 -0500)
After bfcb79fca19d ("PCI/ERR: Run error recovery callbacks for all affected
devices"), AER errors are always cleared by the PCI core and drivers don't
need to do it themselves.

Remove calls to pci_cleanup_aer_uncorrect_error_status() from device
driver error recovery functions.

Signed-off-by: Oza Pawandeep <poza@codeaurora.org>
[bhelgaas: changelog, remove PCI core changes, remove unused variables]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
29 files changed:
drivers/crypto/qat/qat_common/adf_aer.c
drivers/dma/ioat/init.c
drivers/infiniband/hw/hfi1/pcie.c
drivers/infiniband/hw/qib/qib_pcie.c
drivers/net/ethernet/atheros/alx/main.c
drivers/net/ethernet/broadcom/bnx2.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/intel/e1000e/netdev.c
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
drivers/net/ethernet/sfc/efx.c
drivers/net/ethernet/sfc/falcon/efx.c
drivers/nvme/host/pci.c
drivers/scsi/aacraid/linit.c
drivers/scsi/be2iscsi/be_main.c
drivers/scsi/bfa/bfad.c
drivers/scsi/csiostor/csio_init.c
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/mpt3sas/mpt3sas_scsih.c
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla4xxx/ql4_os.c

index 9225d060e18f45cae459be381b0d2a0d79e25793..f5e960d23a7a7990fe3634bb1033203a3846b577 100644 (file)
@@ -198,7 +198,6 @@ static pci_ers_result_t adf_slot_reset(struct pci_dev *pdev)
                pr_err("QAT: Can't find acceleration device\n");
                return PCI_ERS_RESULT_DISCONNECT;
        }
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        if (adf_dev_aer_schedule_reset(accel_dev, ADF_DEV_RESET_SYNC))
                return PCI_ERS_RESULT_DISCONNECT;
 
index 4fa4c06c9edb9809675ea98a2d058e3c8b5dfa35..bd8db5c995970397abf010621727a423be2b775e 100644 (file)
@@ -1252,7 +1252,6 @@ static pci_ers_result_t ioat_pcie_error_detected(struct pci_dev *pdev,
 static pci_ers_result_t ioat_pcie_error_slot_reset(struct pci_dev *pdev)
 {
        pci_ers_result_t result = PCI_ERS_RESULT_RECOVERED;
-       int err;
 
        dev_dbg(&pdev->dev, "%s post reset handling\n", DRV_NAME);
 
@@ -1267,12 +1266,6 @@ static pci_ers_result_t ioat_pcie_error_slot_reset(struct pci_dev *pdev)
                pci_wake_from_d3(pdev, false);
        }
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               dev_err(&pdev->dev,
-                       "AER uncorrect error status clear failed: %#x\n", err);
-       }
-
        return result;
 }
 
index 6c967dde58e702c228835a84c3b1ea19abc1ea64..cca413eaa74ecf482eda1422d3db9ede5cdd24a1 100644 (file)
@@ -650,7 +650,6 @@ pci_resume(struct pci_dev *pdev)
        struct hfi1_devdata *dd = pci_get_drvdata(pdev);
 
        dd_dev_info(dd, "HFI1 resume function called\n");
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        /*
         * Running jobs will fail, since it's asynchronous
         * unlike sysfs-requested reset.   Better than
index 5ac7b31c346bdd171cedfd760c12db53146aca16..30595b358d8f8a6eddbfaab799067e29e8fc259b 100644 (file)
@@ -597,7 +597,6 @@ qib_pci_resume(struct pci_dev *pdev)
        struct qib_devdata *dd = pci_get_drvdata(pdev);
 
        qib_devinfo(pdev, "QIB resume function called\n");
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        /*
         * Running jobs will fail, since it's asynchronous
         * unlike sysfs-requested reset.   Better than
index 6d32211349275d260dbc7817c639df71c91b7084..7968c644ad8617fef2fec1360e869a622c525a02 100644 (file)
@@ -1964,8 +1964,6 @@ static pci_ers_result_t alx_pci_error_slot_reset(struct pci_dev *pdev)
        if (!alx_reset_mac(hw))
                rc = PCI_ERS_RESULT_RECOVERED;
 out:
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        rtnl_unlock();
 
        return rc;
index 122fdb80a789982b00137053fb879179c424e5a9..bbb2471160455b0ee3f1ec56d26baa281759ae3c 100644 (file)
@@ -8793,13 +8793,6 @@ static pci_ers_result_t bnx2_io_slot_reset(struct pci_dev *pdev)
        if (!(bp->flags & BNX2_FLAG_AER_ENABLED))
                return result;
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               dev_err(&pdev->dev,
-                       "pci_cleanup_aer_uncorrect_error_status failed 0x%0x\n",
-                        err); /* non-fatal, continue */
-       }
-
        return result;
 }
 
index 71362b7f60402545c3b4aa2bc391a1e2d3cd7f7f..1b1f0c1b82b700f9c57b2d65f5ec5cf56c44da0e 100644 (file)
@@ -14385,14 +14385,6 @@ static pci_ers_result_t bnx2x_io_slot_reset(struct pci_dev *pdev)
 
        rtnl_unlock();
 
-       /* If AER, perform cleanup of the PCIe registers */
-       if (bp->flags & AER_ENABLED) {
-               if (pci_cleanup_aer_uncorrect_error_status(pdev))
-                       BNX2X_ERR("pci_cleanup_aer_uncorrect_error_status failed\n");
-               else
-                       DP(NETIF_MSG_HW, "pci_cleanup_aer_uncorrect_error_status succeeded\n");
-       }
-
        return PCI_ERS_RESULT_RECOVERED;
 }
 
index cecbb1d1f587f936b0d2960739c911fc28f05d51..1d90f0469093255f69c06b199a5c7d5f96bb9a97 100644 (file)
@@ -9231,13 +9231,6 @@ static pci_ers_result_t bnxt_io_slot_reset(struct pci_dev *pdev)
 
        rtnl_unlock();
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               dev_err(&pdev->dev,
-                       "pci_cleanup_aer_uncorrect_error_status failed 0x%0x\n",
-                        err); /* non-fatal, continue */
-       }
-
        return PCI_ERS_RESULT_RECOVERED;
 }
 
index 961e3087d1d38c3294c5e49c0fab9f1922bf15b9..2e06434122c01f2be742d26783dc28d7032ca7b8 100644 (file)
@@ -4747,7 +4747,6 @@ static pci_ers_result_t eeh_slot_reset(struct pci_dev *pdev)
        pci_set_master(pdev);
        pci_restore_state(pdev);
        pci_save_state(pdev);
-       pci_cleanup_aer_uncorrect_error_status(pdev);
 
        if (t4_wait_dev_ready(adap->regs) < 0)
                return PCI_ERS_RESULT_DISCONNECT;
index 74d122616e76a2d876793a610dd6672e3e8b9910..544e2e3655d1f1d003e056874351487d2f2572fb 100644 (file)
@@ -6151,7 +6151,6 @@ static pci_ers_result_t be_eeh_reset(struct pci_dev *pdev)
        if (status)
                return PCI_ERS_RESULT_DISCONNECT;
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        be_clear_error(adapter, BE_CLEAR_ALL);
        return PCI_ERS_RESULT_RECOVERED;
 }
index 3ba0c90e7055b14a666566279fb7a58728da7427..7cd23324f698e0e85827294cef08db7d29153b1c 100644 (file)
@@ -6854,8 +6854,6 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
                result = PCI_ERS_RESULT_RECOVERED;
        }
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        return result;
 }
 
index 15071e4adb98c9924ab2e9a17c7f616f23104bd0..55138d6a3182e1f16cd52a401b8079edbf4af3c9 100644 (file)
@@ -2462,8 +2462,6 @@ static pci_ers_result_t fm10k_io_slot_reset(struct pci_dev *pdev)
                result = PCI_ERS_RESULT_RECOVERED;
        }
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        return result;
 }
 
index ac685ad4d8773125b059f1209d2b60747996b39b..784caf3e67009749a10cc002fcf2d4fcfc3d0b62 100644 (file)
@@ -14227,7 +14227,6 @@ static pci_ers_result_t i40e_pci_error_slot_reset(struct pci_dev *pdev)
 {
        struct i40e_pf *pf = pci_get_drvdata(pdev);
        pci_ers_result_t result;
-       int err;
        u32 reg;
 
        dev_dbg(&pdev->dev, "%s\n", __func__);
@@ -14248,14 +14247,6 @@ static pci_ers_result_t i40e_pci_error_slot_reset(struct pci_dev *pdev)
                        result = PCI_ERS_RESULT_DISCONNECT;
        }
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               dev_info(&pdev->dev,
-                        "pci_cleanup_aer_uncorrect_error_status failed 0x%0x\n",
-                        err);
-               /* non-fatal, continue */
-       }
-
        return result;
 }
 
index a32c576c1e656c0102989413cad114d1d8f03771..c7ff2f861247b443b3775fd476fa07cf3018176b 100644 (file)
@@ -9116,7 +9116,6 @@ static pci_ers_result_t igb_io_slot_reset(struct pci_dev *pdev)
        struct igb_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
        pci_ers_result_t result;
-       int err;
 
        if (pci_enable_device_mem(pdev)) {
                dev_err(&pdev->dev,
@@ -9140,14 +9139,6 @@ static pci_ers_result_t igb_io_slot_reset(struct pci_dev *pdev)
                result = PCI_ERS_RESULT_RECOVERED;
        }
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               dev_err(&pdev->dev,
-                       "pci_cleanup_aer_uncorrect_error_status failed 0x%0x\n",
-                       err);
-               /* non-fatal, continue */
-       }
-
        return result;
 }
 
index 9a23d33a47ed52bfeb10d79d970e114ee4702d6e..a0f716713e878e454c607b17a0ecc6bdc93f7b27 100644 (file)
@@ -11075,8 +11075,6 @@ static pci_ers_result_t ixgbe_io_error_detected(struct pci_dev *pdev,
                        /* Free device reference count */
                        pci_dev_put(vfdev);
                }
-
-               pci_cleanup_aer_uncorrect_error_status(pdev);
        }
 
        /*
@@ -11126,7 +11124,6 @@ static pci_ers_result_t ixgbe_io_slot_reset(struct pci_dev *pdev)
 {
        struct ixgbe_adapter *adapter = pci_get_drvdata(pdev);
        pci_ers_result_t result;
-       int err;
 
        if (pci_enable_device_mem(pdev)) {
                e_err(probe, "Cannot re-enable PCI device after reset.\n");
@@ -11146,13 +11143,6 @@ static pci_ers_result_t ixgbe_io_slot_reset(struct pci_dev *pdev)
                result = PCI_ERS_RESULT_RECOVERED;
        }
 
-       err = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (err) {
-               e_dev_err("pci_cleanup_aer_uncorrect_error_status "
-                         "failed 0x%0x\n", err);
-               /* non-fatal, continue */
-       }
-
        return result;
 }
 
index 69aa7fc392c5e4ad1cbcd9025f56bffdf3aa92c7..200edc61aa0741c43b34d9772bfcc9111c86dbc0 100644 (file)
@@ -1790,11 +1790,6 @@ static pci_ers_result_t netxen_io_slot_reset(struct pci_dev *pdev)
        return err ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
 }
 
-static void netxen_io_resume(struct pci_dev *pdev)
-{
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-}
-
 static void netxen_nic_shutdown(struct pci_dev *pdev)
 {
        struct netxen_adapter *adapter = pci_get_drvdata(pdev);
@@ -3488,7 +3483,6 @@ netxen_free_ip_list(struct netxen_adapter *adapter, bool master)
 static const struct pci_error_handlers netxen_err_handler = {
        .error_detected = netxen_io_error_detected,
        .slot_reset = netxen_io_slot_reset,
-       .resume = netxen_io_resume,
 };
 
 static struct pci_driver netxen_driver = {
index 569d54ededeca2e6472a3f8502e91c45be8e5232..635ac7339b3e4b55d0ce47be18935b9550344298 100644 (file)
@@ -4232,7 +4232,6 @@ static void qlcnic_83xx_io_resume(struct pci_dev *pdev)
 {
        struct qlcnic_adapter *adapter = pci_get_drvdata(pdev);
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        if (test_and_clear_bit(__QLCNIC_AER, &adapter->state))
                qlcnic_83xx_aer_start_poll_work(adapter);
 }
index 2d38d1ac2aae58fd210030c7b143011f76b921cc..6b3ea531324d80b1d4b65d6a410621bad4e14b19 100644 (file)
@@ -3975,7 +3975,6 @@ static void qlcnic_82xx_io_resume(struct pci_dev *pdev)
        u32 state;
        struct qlcnic_adapter *adapter = pci_get_drvdata(pdev);
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        state = QLC_SHARED_REG_RD32(adapter, QLCNIC_CRB_DEV_STATE);
        if (state == QLCNIC_DEV_READY && test_and_clear_bit(__QLCNIC_AER,
                                                            &adapter->state))
index 330233286e785254f5f29c87f9557a305974f606..c8e8294ddac50f483654094f886dbee82ad03a06 100644 (file)
@@ -3847,7 +3847,6 @@ static pci_ers_result_t efx_io_slot_reset(struct pci_dev *pdev)
 {
        struct efx_nic *efx = pci_get_drvdata(pdev);
        pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
-       int rc;
 
        if (pci_enable_device(pdev)) {
                netif_err(efx, hw, efx->net_dev,
@@ -3855,13 +3854,6 @@ static pci_ers_result_t efx_io_slot_reset(struct pci_dev *pdev)
                status =  PCI_ERS_RESULT_DISCONNECT;
        }
 
-       rc = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (rc) {
-               netif_err(efx, hw, efx->net_dev,
-               "pci_cleanup_aer_uncorrect_error_status failed (%d)\n", rc);
-               /* Non-fatal error. Continue. */
-       }
-
        return status;
 }
 
index dd5530a4f8c8936868aed7171bd9481f93730d76..ccdba0bb00a3b16b17b33e5b3386bcf70591ab86 100644 (file)
@@ -3186,7 +3186,6 @@ static pci_ers_result_t ef4_io_slot_reset(struct pci_dev *pdev)
 {
        struct ef4_nic *efx = pci_get_drvdata(pdev);
        pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
-       int rc;
 
        if (pci_enable_device(pdev)) {
                netif_err(efx, hw, efx->net_dev,
@@ -3194,13 +3193,6 @@ static pci_ers_result_t ef4_io_slot_reset(struct pci_dev *pdev)
                status =  PCI_ERS_RESULT_DISCONNECT;
        }
 
-       rc = pci_cleanup_aer_uncorrect_error_status(pdev);
-       if (rc) {
-               netif_err(efx, hw, efx->net_dev,
-               "pci_cleanup_aer_uncorrect_error_status failed (%d)\n", rc);
-               /* Non-fatal error. Continue. */
-       }
-
        return status;
 }
 
index d668682f91dfdb3428e02a44df2c8ade9ccf0042..8991e79b2b87ab0459f9f5ee9c33478f4f6bf00f 100644 (file)
@@ -2649,7 +2649,6 @@ static void nvme_error_resume(struct pci_dev *pdev)
        struct nvme_dev *dev = pci_get_drvdata(pdev);
 
        flush_work(&dev->ctrl.reset_work);
-       pci_cleanup_aer_uncorrect_error_status(pdev);
 }
 
 static const struct pci_error_handlers nvme_err_handler = {
index 04443577d48b371f37afb057ec5bceb9f2e000f7..1bcdd50786f1db22dca330015c5ed2569e3f42fe 100644 (file)
@@ -2055,8 +2055,6 @@ static void aac_pci_resume(struct pci_dev *pdev)
        struct scsi_device *sdev = NULL;
        struct aac_dev *aac = (struct aac_dev *)shost_priv(shost);
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        if (aac_adapter_ioremap(aac, aac->base_size)) {
 
                dev_err(&pdev->dev, "aacraid: ioremap failed\n");
index 3660059784f74bdbf9620aa787c5f3ab0c823036..a3019d8a74020bbbeb7165a2a890eb3768bca758 100644 (file)
@@ -5529,7 +5529,6 @@ static pci_ers_result_t beiscsi_eeh_reset(struct pci_dev *pdev)
                return PCI_ERS_RESULT_DISCONNECT;
        }
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        return PCI_ERS_RESULT_RECOVERED;
 }
 
index bd7e6a6fc1f184e0b0065408864e7199d0adb46b..911efc98d1fd9f4048d4a25b6fd0cb998bde783a 100644 (file)
@@ -1569,8 +1569,6 @@ bfad_pci_slot_reset(struct pci_dev *pdev)
                if (pci_set_dma_mask(bfad->pcidev, DMA_BIT_MASK(32)) != 0)
                        goto out_disable_device;
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        if (restart_bfa(bfad) == -1)
                goto out_disable_device;
 
index ed2dae657964be4997934c1efe191fb8b556363f..66b230bee7bcd6b1bd35acfae13af68fb07fde72 100644 (file)
@@ -1102,7 +1102,6 @@ csio_pci_slot_reset(struct pci_dev *pdev)
        pci_set_master(pdev);
        pci_restore_state(pdev);
        pci_save_state(pdev);
-       pci_cleanup_aer_uncorrect_error_status(pdev);
 
        /* Bring HW s/m to ready state.
         * but don't resume IOs.
index f3cae733ae2dffea29e37ff562853c2260f9b681..0503237b814546150fccb85e5d3bd230879a05fb 100644 (file)
@@ -11329,10 +11329,6 @@ lpfc_io_resume_s3(struct pci_dev *pdev)
 
        /* Bring device online, it will be no-op for non-fatal error resume */
        lpfc_online(phba);
-
-       /* Clean up Advanced Error Reporting (AER) if needed */
-       if (phba->hba_flag & HBA_AER_ENABLED)
-               pci_cleanup_aer_uncorrect_error_status(pdev);
 }
 
 /**
@@ -12144,10 +12140,6 @@ lpfc_io_resume_s4(struct pci_dev *pdev)
                /* Bring the device back online */
                lpfc_online(phba);
        }
-
-       /* Clean up Advanced Error Reporting (AER) if needed */
-       if (phba->hba_flag & HBA_AER_ENABLED)
-               pci_cleanup_aer_uncorrect_error_status(pdev);
 }
 
 /**
index 53133cfd420f1d2c7c90dd3e0bdc87bf233feece..86eaa893adfc4fe0fa1faf7647117115f62cf2d5 100644 (file)
@@ -10828,7 +10828,6 @@ scsih_pci_resume(struct pci_dev *pdev)
 
        pr_info(MPT3SAS_FMT "PCI error: resume callback!!\n", ioc->name);
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        mpt3sas_base_start_watchdog(ioc);
        scsi_unblock_requests(ioc->shost);
 }
index 42b8f0d3e580da932237826d07c2c36e49bfa7f3..8fe2d7329bfe11bb98cf2a1d6d9f0b691c907703 100644 (file)
@@ -6839,8 +6839,6 @@ qla2xxx_pci_resume(struct pci_dev *pdev)
                    "The device failed to resume I/O from slot/link_reset.\n");
        }
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
-
        ha->flags.eeh_busy = 0;
 }
 
index 0e13349dce57094b3bc211093ec93a26f2797f11..ab3a924e3e110e4a9d9f12b330a9080a95b395e0 100644 (file)
@@ -9824,7 +9824,6 @@ qla4xxx_pci_resume(struct pci_dev *pdev)
                     __func__);
        }
 
-       pci_cleanup_aer_uncorrect_error_status(pdev);
        clear_bit(AF_EEH_BUSY, &ha->flags);
 }