On Wed, Mar 18, 2020 at 12:33:12PM +0100, Lukas Wunner wrote: > Fixes: 54ecb8f7028c ("PCI: pciehp: Avoid returning prematurely from sysfs requests") > Reported-by: David Hoyer <David.Hoyer@xxxxxxxxxx> > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # v4.19+ > Cc: Keith Busch <kbusch@xxxxxxxxxx> Looks good to me. Reviewed-by: Keith Busch <kbusch@xxxxxxxxxx> > drivers/pci/hotplug/pciehp_hpc.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c > index e4627c68b30f..5f1a27bfcb19 100644 > --- a/drivers/pci/hotplug/pciehp_hpc.c > +++ b/drivers/pci/hotplug/pciehp_hpc.c > @@ -663,17 +663,15 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id) > if (atomic_fetch_and(~RERUN_ISR, &ctrl->pending_events) & RERUN_ISR) { > ret = pciehp_isr(irq, dev_id); > enable_irq(irq); > - if (ret != IRQ_WAKE_THREAD) { > - pci_config_pm_runtime_put(pdev); > - return ret; > - } > + if (ret != IRQ_WAKE_THREAD) > + goto out; > } > > synchronize_hardirq(irq); > events = atomic_xchg(&ctrl->pending_events, 0); > if (!events) { > - pci_config_pm_runtime_put(pdev); > - return IRQ_NONE; > + ret = IRQ_NONE; > + goto out; > } > > /* Check Attention Button Pressed */ > @@ -702,10 +700,12 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id) > pciehp_handle_presence_or_link_change(ctrl, events); > up_read(&ctrl->reset_lock); > > + ret = IRQ_HANDLED; > +out: > pci_config_pm_runtime_put(pdev); > ctrl->ist_running = false; > wake_up(&ctrl->requester); > - return IRQ_HANDLED; > + return ret; > } > > static int pciehp_poll(void *data) > -- > 2.25.0 >