This is mostly Mayurkumar's work from [1] and [2]. I split [2] into two patches and reworked it to keep the enclosing loop around the pciehp ISR.
The patches I added are trivial ones to clarify variable names, make dmesg messages consistent, and remove useless code. [1] [email protected] [2] 92ebb4272bf81e4089a7126ec1e7b28466598...@irsmsx101.ger.corp.intel.com --- Bjorn Helgaas (5): PCI: pciehp: Rename pcie_isr() locals for clarity PCI: pciehp: Return IRQ_NONE when we can't read interrupt status PCI: pciehp: Remove unnecessary guard PCI: pciehp: Clean up dmesg "Slot(%s)" messages PCI: pciehp: Remove useless pciehp_get_latch_status() calls Mayurkumar Patel (3): PCI: pciehp: Process all hotplug events before looking for new ones PCI: pciehp: Don't re-read Slot Status when queuing hotplug event PCI: pciehp: Don't re-read Slot Status when handling surprise event drivers/pci/hotplug/pciehp_ctrl.c | 83 ++++++++++++--------------------- drivers/pci/hotplug/pciehp_hpc.c | 94 ++++++++++++++++++++----------------- 2 files changed, 82 insertions(+), 95 deletions(-)

