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);
        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);
        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);