There are bugs in certain PCIe switches that cause access violations when an endpoint device is hotplugged. In particular, there's an issue with certain IDT switches that trigger a ACS violation when bringing up a newly plugged PCIe endpoint device. This is a major issue for platforms designed to issue a fatal reset in the case of this event. The first patch provides a framework for intercepting and working around issues with parent devices to the endpoint being brought up. The second patch provides the actual patch for the IDT switch issue using that framework. The ACS feature is disabled in the IDT switch prior to endpoint device detection and then re-enabled subsequent to that. James --- James Puthukattukaran (2): PCI: Add pci_bus_specific_read_dev_vendor_id() to workaround PCI switch specific issues prior to accessing newly added endpoint PCI: Implement workaround for the ACS bug in the IDT switch drivers/pci/pci.h | 4 ++ drivers/pci/probe.c | 19 +++++++- drivers/pci/quirks.c | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+), 1 deletion(-)