summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc3
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2015-10-12 18:25:44 (GMT)
committerFelipe Balbi <balbi@ti.com>2015-10-12 18:32:05 (GMT)
commite5f68b4a3e7b006f209aba078d6a5ff3a78dd783 (patch)
treed89ba4e1a9064ca671dabfe0dd875cc4f88cdf8c /drivers/usb/dwc3
parent5527e73305e8a9958b00331902a27514e62d539b (diff)
downloadlinux-e5f68b4a3e7b006f209aba078d6a5ff3a78dd783.tar.xz
Revert "usb: dwc3: gadget: remove unnecessary _irqsave()"
This reverts commit 70f3a9caa11665e9f9aace581d85d8483716a4c8. That commit was causing a lockdep splat with g_ether and that was interfering with proper functionality. Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r--drivers/usb/dwc3/gadget.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index cca806e..81bfb9a 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2642,15 +2642,16 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3 *dwc, u32 buf)
static irqreturn_t dwc3_thread_interrupt(int irq, void *_dwc)
{
struct dwc3 *dwc = _dwc;
+ unsigned long flags;
irqreturn_t ret = IRQ_NONE;
int i;
- spin_lock(&dwc->lock);
+ spin_lock_irqsave(&dwc->lock, flags);
for (i = 0; i < dwc->num_event_buffers; i++)
ret |= dwc3_process_event_buf(dwc, i);
- spin_unlock(&dwc->lock);
+ spin_unlock_irqrestore(&dwc->lock, flags);
return ret;
}