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

Message ID 20200521173134.2456773-2-Jonathan.Cameron@huawei.com
State New
Headers show
  • PCI/AER: handling for RCiEPs
Related show

Commit Message

Jonathan Cameron May 21, 2020, 5:31 p.m.
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

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