aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Baldyga <r.baldyga@samsung.com>2014-03-10 04:33:37 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-17 19:05:31 -0400
commit48968f8d5f2234fb1768c55cf7d96d0b87446cd6 (patch)
treef50d70be97db87b656fa58b51dc2d229ce595540
parentdad4babe419ef2f3e14447a650ce1f760a6ee9e0 (diff)
usb: gadget: f_fs: add missing spinlock and mutex unlock
This patch adds missing spin_unlock and mutex_unlock calls in error handling code. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/gadget/f_fs.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c
index 10c086afa2f4..2e164dca08e8 100644
--- a/drivers/usb/gadget/f_fs.c
+++ b/drivers/usb/gadget/f_fs.c
@@ -802,7 +802,7 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data)
802 if (io_data->aio) { 802 if (io_data->aio) {
803 req = usb_ep_alloc_request(ep->ep, GFP_KERNEL); 803 req = usb_ep_alloc_request(ep->ep, GFP_KERNEL);
804 if (unlikely(!req)) 804 if (unlikely(!req))
805 goto error; 805 goto error_lock;
806 806
807 req->buf = data; 807 req->buf = data;
808 req->length = io_data->len; 808 req->length = io_data->len;
@@ -817,7 +817,7 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data)
817 ret = usb_ep_queue(ep->ep, req, GFP_ATOMIC); 817 ret = usb_ep_queue(ep->ep, req, GFP_ATOMIC);
818 if (unlikely(ret)) { 818 if (unlikely(ret)) {
819 usb_ep_free_request(ep->ep, req); 819 usb_ep_free_request(ep->ep, req);
820 goto error; 820 goto error_lock;
821 } 821 }
822 ret = -EIOCBQUEUED; 822 ret = -EIOCBQUEUED;
823 823
@@ -865,6 +865,10 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data)
865 865
866 mutex_unlock(&epfile->mutex); 866 mutex_unlock(&epfile->mutex);
867 return ret; 867 return ret;
868
869error_lock:
870 spin_unlock_irq(&epfile->ffs->eps_lock);
871 mutex_unlock(&epfile->mutex);
868error: 872error:
869 kfree(data); 873 kfree(data);
870 return ret; 874 return ret;