From: Oliver Neukum Date: Tue, 22 Aug 2023 11:24:55 +0000 (+0200) Subject: USB: dwc2: hande irq on dead controller correctly X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=2ccbe85456b367d24d53f6ff9f5b2cafd0b54877;p=linux.git USB: dwc2: hande irq on dead controller correctly If the controller is dead, the honest answer to the question whether it has caused an irq is: unknown As the purpose of the irq return is to trigger switching off an IRQ, the correct response if you cannot determine if your device has caused the interrupt is IRQ_HANDLED Signed-off-by: Oliver Neukum Link: https://lore.kernel.org/r/20230822112455.18957-1-oneukum@suse.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/dwc2/hcd_intr.c b/drivers/usb/dwc2/hcd_intr.c index c9740caa5974b..0144ca8350c31 100644 --- a/drivers/usb/dwc2/hcd_intr.c +++ b/drivers/usb/dwc2/hcd_intr.c @@ -2203,11 +2203,13 @@ static void dwc2_hc_intr(struct dwc2_hsotg *hsotg) irqreturn_t dwc2_handle_hcd_intr(struct dwc2_hsotg *hsotg) { u32 gintsts, dbg_gintsts; - irqreturn_t retval = IRQ_NONE; + irqreturn_t retval = IRQ_HANDLED; if (!dwc2_is_controller_alive(hsotg)) { dev_warn(hsotg->dev, "Controller is dead\n"); return retval; + } else { + retval = IRQ_NONE; } spin_lock(&hsotg->lock);