In ffs_epfile_io error label points to a return path which includes
a kfree(data) call.  However, at the beginning of the function data is
always NULL so some of the early ‘goto error’ can safely be replaced
with a trivial return statement.

Signed-off-by: Michal Nazarewicz <min...@mina86.com>
---
 drivers/usb/gadget/function/f_fs.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/drivers/usb/gadget/function/f_fs.c 
b/drivers/usb/gadget/function/f_fs.c
index 1384220..c4e6395 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -690,32 +690,24 @@ static ssize_t ffs_epfile_io(struct file *file, struct 
ffs_io_data *io_data)
        int halt;
 
        /* Are we still active? */
-       if (WARN_ON(epfile->ffs->state != FFS_ACTIVE)) {
-               ret = -ENODEV;
-               goto error;
-       }
+       if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
+               return -ENODEV;
 
        /* Wait for endpoint to be enabled */
        ep = epfile->ep;
        if (!ep) {
-               if (file->f_flags & O_NONBLOCK) {
-                       ret = -EAGAIN;
-                       goto error;
-               }
+               if (file->f_flags & O_NONBLOCK)
+                       return -EAGAIN;
 
                ret = wait_event_interruptible(epfile->wait, (ep = epfile->ep));
-               if (ret) {
-                       ret = -EINTR;
-                       goto error;
-               }
+               if (ret)
+                       return -EINTR;
        }
 
        /* Do we halt? */
        halt = (!io_data->read == !epfile->in);
-       if (halt && epfile->isoc) {
-               ret = -EINVAL;
-               goto error;
-       }
+       if (halt && epfile->isoc)
+               return -EINVAL;
 
        /* Allocate & copy */
        if (!halt) {
-- 
2.6.0.rc2.230.g3dd15c0

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to