forked from luck/tmp_suning_uos_patched
PCI/AER: Rationalize error status register clearing
The AER interfaces to clear error status registers were a confusing mess: - pci_cleanup_aer_uncorrect_error_status() cleared non-fatal errors from the Uncorrectable Error Status register. - pci_aer_clear_fatal_status() cleared fatal errors from the Uncorrectable Error Status register. - pci_cleanup_aer_error_status_regs() cleared the Root Error Status register (for Root Ports), the Uncorrectable Error Status register, and the Correctable Error Status register. Rename them to make them consistent: From To ---------------------------------------- ------------------------------- pci_cleanup_aer_uncorrect_error_status() pci_aer_clear_nonfatal_status() pci_aer_clear_fatal_status() pci_aer_clear_fatal_status() pci_cleanup_aer_error_status_regs() pci_aer_clear_status() Since pci_cleanup_aer_error_status_regs() (renamed to pci_aer_clear_status()) is only used within drivers/pci/, move the declaration from <linux/aer.h> to drivers/pci/pci.h. [bhelgaas: commit log, add renames] Link: https://lore.kernel.org/r/d1310a75dc3d28f7e8da4e99c45fbd3e60fe238e.1585000084.git.sathyanarayanan.kuppuswamy@linux.intel.com Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
ac1c8e35a3
commit
894020fdd8
|
@ -232,9 +232,9 @@ messages to root port when an error is detected.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev);`
|
int pci_aer_clear_nonfatal_status(struct pci_dev *dev);`
|
||||||
|
|
||||||
pci_cleanup_aer_uncorrect_error_status cleanups the uncorrectable
|
pci_aer_clear_nonfatal_status clears non-fatal errors in the uncorrectable
|
||||||
error status register.
|
error status register.
|
||||||
|
|
||||||
Frequent Asked Questions
|
Frequent Asked Questions
|
||||||
|
|
|
@ -3495,10 +3495,10 @@ static pci_ers_result_t ice_pci_err_slot_reset(struct pci_dev *pdev)
|
||||||
result = PCI_ERS_RESULT_DISCONNECT;
|
result = PCI_ERS_RESULT_DISCONNECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pci_cleanup_aer_uncorrect_error_status(pdev);
|
err = pci_aer_clear_nonfatal_status(pdev);
|
||||||
if (err)
|
if (err)
|
||||||
dev_dbg(&pdev->dev,
|
dev_dbg(&pdev->dev,
|
||||||
"pci_cleanup_aer_uncorrect_error_status failed, error %d\n",
|
"pci_aer_clear_nonfatal_status() failed, error %d\n",
|
||||||
err);
|
err);
|
||||||
/* non-fatal, continue */
|
/* non-fatal, continue */
|
||||||
|
|
||||||
|
|
|
@ -2674,8 +2674,8 @@ static int idt_init_pci(struct idt_ntb_dev *ndev)
|
||||||
ret = pci_enable_pcie_error_reporting(pdev);
|
ret = pci_enable_pcie_error_reporting(pdev);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
dev_warn(&pdev->dev, "PCIe AER capability disabled\n");
|
dev_warn(&pdev->dev, "PCIe AER capability disabled\n");
|
||||||
else /* Cleanup uncorrectable error status before getting to init */
|
else /* Cleanup nonfatal error status before getting to init */
|
||||||
pci_cleanup_aer_uncorrect_error_status(pdev);
|
pci_aer_clear_nonfatal_status(pdev);
|
||||||
|
|
||||||
/* First enable the PCI device */
|
/* First enable the PCI device */
|
||||||
ret = pcim_enable_device(pdev);
|
ret = pcim_enable_device(pdev);
|
||||||
|
|
|
@ -1503,7 +1503,7 @@ void pci_restore_state(struct pci_dev *dev)
|
||||||
pci_restore_rebar_state(dev);
|
pci_restore_rebar_state(dev);
|
||||||
pci_restore_dpc_state(dev);
|
pci_restore_dpc_state(dev);
|
||||||
|
|
||||||
pci_cleanup_aer_error_status_regs(dev);
|
pci_aer_clear_status(dev);
|
||||||
pci_restore_aer_state(dev);
|
pci_restore_aer_state(dev);
|
||||||
|
|
||||||
pci_restore_config_space(dev);
|
pci_restore_config_space(dev);
|
||||||
|
|
|
@ -656,6 +656,7 @@ void pci_aer_exit(struct pci_dev *dev);
|
||||||
extern const struct attribute_group aer_stats_attr_group;
|
extern const struct attribute_group aer_stats_attr_group;
|
||||||
void pci_aer_clear_fatal_status(struct pci_dev *dev);
|
void pci_aer_clear_fatal_status(struct pci_dev *dev);
|
||||||
void pci_aer_clear_device_status(struct pci_dev *dev);
|
void pci_aer_clear_device_status(struct pci_dev *dev);
|
||||||
|
int pci_aer_clear_status(struct pci_dev *dev);
|
||||||
int pci_aer_raw_clear_status(struct pci_dev *dev);
|
int pci_aer_raw_clear_status(struct pci_dev *dev);
|
||||||
#else
|
#else
|
||||||
static inline void pci_no_aer(void) { }
|
static inline void pci_no_aer(void) { }
|
||||||
|
@ -663,6 +664,7 @@ static inline void pci_aer_init(struct pci_dev *d) { }
|
||||||
static inline void pci_aer_exit(struct pci_dev *d) { }
|
static inline void pci_aer_exit(struct pci_dev *d) { }
|
||||||
static inline void pci_aer_clear_fatal_status(struct pci_dev *dev) { }
|
static inline void pci_aer_clear_fatal_status(struct pci_dev *dev) { }
|
||||||
static inline void pci_aer_clear_device_status(struct pci_dev *dev) { }
|
static inline void pci_aer_clear_device_status(struct pci_dev *dev) { }
|
||||||
|
static inline int pci_aer_clear_status(struct pci_dev *dev) { return -EINVAL; }
|
||||||
static inline int pci_aer_raw_clear_status(struct pci_dev *dev) { return -EINVAL; }
|
static inline int pci_aer_raw_clear_status(struct pci_dev *dev) { return -EINVAL; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -377,7 +377,7 @@ void pci_aer_clear_device_status(struct pci_dev *dev)
|
||||||
pcie_capability_write_word(dev, PCI_EXP_DEVSTA, sta);
|
pcie_capability_write_word(dev, PCI_EXP_DEVSTA, sta);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
u32 status, sev;
|
u32 status, sev;
|
||||||
|
@ -398,7 +398,7 @@ int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(pci_cleanup_aer_uncorrect_error_status);
|
EXPORT_SYMBOL_GPL(pci_aer_clear_nonfatal_status);
|
||||||
|
|
||||||
void pci_aer_clear_fatal_status(struct pci_dev *dev)
|
void pci_aer_clear_fatal_status(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
|
@ -457,7 +457,7 @@ int pci_aer_raw_clear_status(struct pci_dev *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pci_cleanup_aer_error_status_regs(struct pci_dev *dev)
|
int pci_aer_clear_status(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
if (pcie_aer_get_firmware_first(dev))
|
if (pcie_aer_get_firmware_first(dev))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
@ -530,7 +530,7 @@ void pci_aer_init(struct pci_dev *dev)
|
||||||
n = pcie_cap_has_rtctl(dev) ? 5 : 4;
|
n = pcie_cap_has_rtctl(dev) ? 5 : 4;
|
||||||
pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_ERR, sizeof(u32) * n);
|
pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_ERR, sizeof(u32) * n);
|
||||||
|
|
||||||
pci_cleanup_aer_error_status_regs(dev);
|
pci_aer_clear_status(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pci_aer_exit(struct pci_dev *dev)
|
void pci_aer_exit(struct pci_dev *dev)
|
||||||
|
|
|
@ -221,7 +221,7 @@ void dpc_process_error(struct pci_dev *pdev)
|
||||||
dpc_get_aer_uncorrect_severity(pdev, &info) &&
|
dpc_get_aer_uncorrect_severity(pdev, &info) &&
|
||||||
aer_get_device_error_info(pdev, &info)) {
|
aer_get_device_error_info(pdev, &info)) {
|
||||||
aer_print_error(pdev, &info);
|
aer_print_error(pdev, &info);
|
||||||
pci_cleanup_aer_uncorrect_error_status(pdev);
|
pci_aer_clear_nonfatal_status(pdev);
|
||||||
pci_aer_clear_fatal_status(pdev);
|
pci_aer_clear_fatal_status(pdev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev,
|
||||||
pci_walk_bus(bus, report_resume, &status);
|
pci_walk_bus(bus, report_resume, &status);
|
||||||
|
|
||||||
pci_aer_clear_device_status(dev);
|
pci_aer_clear_device_status(dev);
|
||||||
pci_cleanup_aer_uncorrect_error_status(dev);
|
pci_aer_clear_nonfatal_status(dev);
|
||||||
pci_info(dev, "device recovery successful\n");
|
pci_info(dev, "device recovery successful\n");
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
|
|
|
@ -4783,7 +4783,7 @@ static DEVICE_ATTR_RW(lpfc_aer_support);
|
||||||
* Description:
|
* Description:
|
||||||
* If the @buf contains 1 and the device currently has the AER support
|
* If the @buf contains 1 and the device currently has the AER support
|
||||||
* enabled, then invokes the kernel AER helper routine
|
* enabled, then invokes the kernel AER helper routine
|
||||||
* pci_cleanup_aer_uncorrect_error_status to clean up the uncorrectable
|
* pci_aer_clear_nonfatal_status() to clean up the uncorrectable
|
||||||
* error status register.
|
* error status register.
|
||||||
*
|
*
|
||||||
* Notes:
|
* Notes:
|
||||||
|
@ -4809,7 +4809,7 @@ lpfc_aer_cleanup_state(struct device *dev, struct device_attribute *attr,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (phba->hba_flag & HBA_AER_ENABLED)
|
if (phba->hba_flag & HBA_AER_ENABLED)
|
||||||
rc = pci_cleanup_aer_uncorrect_error_status(phba->pcidev);
|
rc = pci_aer_clear_nonfatal_status(phba->pcidev);
|
||||||
|
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
return strlen(buf);
|
return strlen(buf);
|
||||||
|
|
|
@ -44,8 +44,7 @@ struct aer_capability_regs {
|
||||||
/* PCIe port driver needs this function to enable AER */
|
/* PCIe port driver needs this function to enable AER */
|
||||||
int pci_enable_pcie_error_reporting(struct pci_dev *dev);
|
int pci_enable_pcie_error_reporting(struct pci_dev *dev);
|
||||||
int pci_disable_pcie_error_reporting(struct pci_dev *dev);
|
int pci_disable_pcie_error_reporting(struct pci_dev *dev);
|
||||||
int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev);
|
int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
|
||||||
int pci_cleanup_aer_error_status_regs(struct pci_dev *dev);
|
|
||||||
void pci_save_aer_state(struct pci_dev *dev);
|
void pci_save_aer_state(struct pci_dev *dev);
|
||||||
void pci_restore_aer_state(struct pci_dev *dev);
|
void pci_restore_aer_state(struct pci_dev *dev);
|
||||||
#else
|
#else
|
||||||
|
@ -57,11 +56,7 @@ static inline int pci_disable_pcie_error_reporting(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
static inline int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
|
||||||
{
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
static inline int pci_cleanup_aer_error_status_regs(struct pci_dev *dev)
|
|
||||||
{
|
{
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user