diff options
-rw-r--r-- | drivers/usb/gadget/legacy/inode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c index 352c59cff5b6..368d07937848 100644 --- a/drivers/usb/gadget/legacy/inode.c +++ b/drivers/usb/gadget/legacy/inode.c @@ -1231,10 +1231,11 @@ ep0_write (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) dev->gadget->ep0, dev->req, GFP_KERNEL); } - spin_lock_irq(&dev->lock); --dev->udc_usage; if (retval < 0) { + spin_lock_irq (&dev->lock); clean_req (dev->gadget->ep0, dev->req); + spin_unlock_irq (&dev->lock); } else retval = len; |