linux/drivers/pci/pcie
Alex Williamson aa6ca5a9d7 PCI/DPC: Fix shared interrupt handling
DPC supports shared interrupts, but it plays very loosely with testing
whether the interrupt is generated by DPC before generating spurious log
messages, such as:

  dpc 0000:10:01.2:pcie010: DPC containment event, status:0x1f00 source:0x0000

Testing the status register for zero or -1 is not sufficient when the
device supports the RP PIO First Error Pointer register.  Change this to
test whether the interrupt is enabled in the control register, retaining
the device present test, and that the status reports the interrupt as
signaled and DPC is triggered, clearing as a spurious interrupt otherwise.

Additionally, since the interrupt is actually serviced by a workqueue,
disable the interrupt in the control register until that completes or else
we may never see it execute due to further incoming interrupts.  A software
generated DPC floods the system otherwise.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
Reviewed-by: Keith Busch <keith.busch@intel.com>
2018-01-10 15:44:16 -06:00
..
aer pci-v4.15-changes 2017-11-15 15:01:28 -08:00
aspm.c pci-v4.15-changes 2017-11-15 15:01:28 -08:00
Kconfig PCI/ASPM: Add support for L1 substates 2017-02-14 17:43:51 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pcie-dpc.c PCI/DPC: Fix shared interrupt handling 2018-01-10 15:44:16 -06:00
pme.c PCI/PME: Handle invalid data when reading Root Status 2017-11-07 18:38:47 -06:00
portdrv_acpi.c Merge branches 'pci/dpc', 'pci/resource' and 'pci/thunderbolt' into next 2016-05-03 11:49:21 -05:00
portdrv_bus.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
portdrv_core.c pci-v4.15-changes 2017-11-15 15:01:28 -08:00
portdrv_pci.c pci-v4.15-changes 2017-11-15 15:01:28 -08:00
portdrv.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ptm.c PCI: Add PTM clock granularity information 2016-08-25 08:32:34 -05:00