[PATCH 1/2] PCI/AER: Do not reset the device status if doing firmware first handling.

Jonathan Cameron
2020-05-21T17:32:53Z

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@huawei.com>
---
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