pci_aer_clear_device_status() currently resets the device status even when firmware first handling is going on. In particular it resets it on the root port. This has been discussed previously https://lore.kernel.org/patchwork/patch/427375/. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> --- drivers/pci/pcie/aer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index f4274d301235..43e78b97ace6 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -373,6 +373,9 @@ void pci_aer_clear_device_status(struct pci_dev *dev) { u16 sta; + if (pcie_aer_get_firmware_first(dev)) + return; + pcie_capability_read_word(dev, PCI_EXP_DEVSTA, &sta); pcie_capability_write_word(dev, PCI_EXP_DEVSTA, sta); } -- 2.19.1