We observe that software's removing of a device generates potentially 1000's of MMIO and config space access when unbinding from the removed hardware, and this reliance on hardware to handle this slows down software's total tear down time for handling a removed device. This series reduces the number of non-functional MMIO and config space accesses on a hot removed device. In some cases, we measure device unbinding that used to take 100's of milliseconds to complete in < 1ms. v3 -> v4: Merged up to current pci/hotplug. The aer initialization is done only when CONFIG_PCIAER is enabled, similar to how ATS support is managed. Removed making "is_removed" sticky on the checking pci_device_is_present. Only pciehp and pcie-dpc set this state in this series. Added the MIPs dependency. This was okay'ed, but I don't see it in the linux-mips tree. Keith Busch (5): mips/pci: Reduce stack frame usage pci: Add is_removed state pci: No config access for removed devices pcie/aer: Cache capability position pci/msix: Skip disabling removed devices arch/mips/txx9/generic/pci.c | 6 +----- drivers/pci/hotplug/pciehp_pci.c | 2 ++ drivers/pci/msi.c | 7 ++++++- drivers/pci/pcie/aer/aerdrv.c | 10 +++++----- drivers/pci/pcie/aer/aerdrv_core.c | 12 ++++++------ drivers/pci/pcie/pcie-dpc.c | 1 + drivers/pci/probe.c | 2 ++ include/linux/pci.h | 20 ++++++++++++++++++++ 8 files changed, 43 insertions(+), 17 deletions(-) -- 2.7.2 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html