diff options
| -rw-r--r-- | drivers/usb/gadget/dummy_hcd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c index 4be47195bd38..7d1c22c34957 100644 --- a/drivers/usb/gadget/dummy_hcd.c +++ b/drivers/usb/gadget/dummy_hcd.c | |||
| @@ -609,7 +609,8 @@ static int dummy_dequeue (struct usb_ep *_ep, struct usb_request *_req) | |||
| 609 | if (!dum->driver) | 609 | if (!dum->driver) |
| 610 | return -ESHUTDOWN; | 610 | return -ESHUTDOWN; |
| 611 | 611 | ||
| 612 | spin_lock_irqsave (&dum->lock, flags); | 612 | local_irq_save (flags); |
| 613 | spin_lock (&dum->lock); | ||
| 613 | list_for_each_entry (req, &ep->queue, queue) { | 614 | list_for_each_entry (req, &ep->queue, queue) { |
| 614 | if (&req->req == _req) { | 615 | if (&req->req == _req) { |
| 615 | list_del_init (&req->queue); | 616 | list_del_init (&req->queue); |
| @@ -618,7 +619,7 @@ static int dummy_dequeue (struct usb_ep *_ep, struct usb_request *_req) | |||
| 618 | break; | 619 | break; |
| 619 | } | 620 | } |
| 620 | } | 621 | } |
| 621 | spin_unlock_irqrestore (&dum->lock, flags); | 622 | spin_unlock (&dum->lock); |
| 622 | 623 | ||
| 623 | if (retval == 0) { | 624 | if (retval == 0) { |
| 624 | dev_dbg (udc_dev(dum), | 625 | dev_dbg (udc_dev(dum), |
| @@ -626,6 +627,7 @@ static int dummy_dequeue (struct usb_ep *_ep, struct usb_request *_req) | |||
| 626 | req, _ep->name, _req->length, _req->buf); | 627 | req, _ep->name, _req->length, _req->buf); |
| 627 | _req->complete (_ep, _req); | 628 | _req->complete (_ep, _req); |
| 628 | } | 629 | } |
| 630 | local_irq_restore (flags); | ||
| 629 | return retval; | 631 | return retval; |
| 630 | } | 632 | } |
| 631 | 633 | ||
