Version 5 of attempting to limit accessing PCI devices we know to be disconnected. The motivation for this is that we do not need or want to start an operation that we know will fail, and this has demonstrated an improvement in time to complete device removal. v4 -> v5: Greg was concerned about the method for observing the disconnected state being visible to device drivers. We do not want device drivers relying on this to handle their device specific operations when a device is suddenly disconnected. Since the intended usage is internal to the PCI driver itself, this series privatizes the state. As a consequence, I had to move the inline pci device config accessors to exported functions so they could access the private API for the disconnected state. I've also split the short-cut for pci_device_is_present from the pci_dev_config_<read|write>_<byte|word|dword> access short cut into two different patches since they're not really the same thing. This is otherwise the same as before. Keith Busch (5): pci: Export pci device config accessors pci: Add device disconnected state pci: No config access for disconnected devices pci/msix: Skip disabling disconnected devices pci: Quick return for pci_device_is_present drivers/pci/access.c | 56 ++++++++++++++++++++++++++++++++++++++++ drivers/pci/hotplug/pciehp_pci.c | 5 ++++ drivers/pci/msi.c | 7 ++++- drivers/pci/pci.c | 2 ++ drivers/pci/pci.h | 14 ++++++++++ drivers/pci/pcie/pcie-dpc.c | 4 +++ include/linux/pci.h | 34 ++++++------------------ 7 files changed, 95 insertions(+), 27 deletions(-) -- 2.7.2