Messages in this thread Patch in this message | | | From | Robert Baldyga <> | Subject | [PATCH] usb: dwc2: call dwc2_is_controller_alive() under spinlock | Date | Tue, 13 Jan 2015 11:57:37 +0100 |
| |
This patch fixes bug described here: https://lkml.org/lkml/2014/12/22/185
Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> --- drivers/usb/dwc2/core_intr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index ad43c5b..668c8dd 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -476,13 +476,13 @@ irqreturn_t dwc2_handle_common_intr(int irq, void *dev) u32 gintsts; irqreturn_t retval = IRQ_NONE; + spin_lock(&hsotg->lock); + if (!dwc2_is_controller_alive(hsotg)) { dev_warn(hsotg->dev, "Controller is dead\n"); goto out; } - spin_lock(&hsotg->lock); - gintsts = dwc2_read_common_intr(hsotg); if (gintsts & ~GINTSTS_PRTINT) retval = IRQ_HANDLED; -- 1.9.1
| |