|
@@ -397,6 +397,9 @@ int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
|
|
if (!pos)
|
|
|
return -EIO;
|
|
|
|
|
|
+ if (pcie_aer_get_firmware_first(dev))
|
|
|
+ return -EIO;
|
|
|
+
|
|
|
/* Clear status bits for ERR_NONFATAL errors only */
|
|
|
pci_read_config_dword(dev, pos + PCI_ERR_UNCOR_STATUS, &status);
|
|
|
pci_read_config_dword(dev, pos + PCI_ERR_UNCOR_SEVER, &sev);
|
|
@@ -417,6 +420,9 @@ void pci_aer_clear_fatal_status(struct pci_dev *dev)
|
|
|
if (!pos)
|
|
|
return;
|
|
|
|
|
|
+ if (pcie_aer_get_firmware_first(dev))
|
|
|
+ return;
|
|
|
+
|
|
|
/* Clear status bits for ERR_FATAL errors only */
|
|
|
pci_read_config_dword(dev, pos + PCI_ERR_UNCOR_STATUS, &status);
|
|
|
pci_read_config_dword(dev, pos + PCI_ERR_UNCOR_SEVER, &sev);
|
|
@@ -438,6 +444,9 @@ int pci_cleanup_aer_error_status_regs(struct pci_dev *dev)
|
|
|
if (!pos)
|
|
|
return -EIO;
|
|
|
|
|
|
+ if (pcie_aer_get_firmware_first(dev))
|
|
|
+ return -EIO;
|
|
|
+
|
|
|
port_type = pci_pcie_type(dev);
|
|
|
if (port_type == PCI_EXP_TYPE_ROOT_PORT) {
|
|
|
pci_read_config_dword(dev, pos + PCI_ERR_ROOT_STATUS, &status);
|