linux/drivers/pci/pcie
Oza Pawandeep 6927868e7a PCI/DPC: Disable ERR_NONFATAL handling by DPC
PCIe ERR_NONFATAL errors mean a particular transaction is unreliable but
the Link is otherwise fully functional (PCIe r4.0, sec 6.2.2).

The AER driver handles these by logging the error details and calling
driver-supplied pci_error_handlers callbacks.  It does not reset downstream
devices, does not remove them from the PCI subsystem, does not re-enumerate
them, and does not call their driver .remove() or .probe() methods.

But DPC driver previously enabled DPC on ERR_NONFATAL, so if the hardware
supports DPC, these errors caused a Link reset (performed automatically by
the hardware), followed by the DPC driver removing affected devices (which
calls their .remove() methods), bringing the Link back up, and
re-enumerating (which calls driver .probe() methods).

Disable ERR_NONFATAL DPC triggering so these errors will only be handled by
AER.  This means drivers won't have to deal with different usage of their
pci_error_handlers callbacks and .probe() and .remove() methods based on
whether the platform has DPC support.

Signed-off-by: Oza Pawandeep <poza@codeaurora.org>
[bhelgaas: changelog]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2018-06-02 19:29:25 -05:00
..
aer PCI/portdrv: Add generic pcie_port_find_service() 2018-05-17 16:49:30 -05:00
aspm.c Merge branch 'pci/misc' 2018-04-04 13:27:45 -05:00
dpc.c PCI/DPC: Disable ERR_NONFATAL handling by DPC 2018-06-02 19:29:25 -05:00
err.c PCI/portdrv: Add generic pcie_port_find_service() 2018-05-17 16:49:30 -05:00
Kconfig Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
Makefile PCI/AER: Factor out error reporting to drivers/pci/pcie/err.c 2018-05-17 16:48:23 -05:00
pme.c PCI/portdrv: Merge pcieport_if.h into portdrv.h 2018-03-09 11:42:01 -06:00
portdrv_acpi.c PCI/DPC: Do not enable DPC if AER control is not allowed by the BIOS 2018-03-30 17:33:34 -05:00
portdrv_core.c PCI/portdrv: Add generic pcie_port_find_device() 2018-06-02 19:29:24 -05:00
portdrv_pci.c Merge branch 'pci/portdrv' 2018-04-04 13:27:58 -05:00
portdrv.h PCI/portdrv: Add generic pcie_port_find_device() 2018-06-02 19:29:24 -05:00
ptm.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00