usb: gadget: f_fs: fix check in read operation
authorRui Miguel Silva <rui.silva@linaro.org>
Wed, 20 May 2015 13:53:33 +0000 (14:53 +0100)
committerFelipe Balbi <balbi@ti.com>
Tue, 26 May 2015 15:20:57 +0000 (10:20 -0500)
when copying to iter the size can be different then the iov count,
the check for full iov is wrong and make any read on request which
is not the exactly size of iov to return -EFAULT.

So, just check the success of the copy.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/function/f_fs.c

index 71f68c48103e439415e763ef5991cd165daa926a..3507f880eb74294c76ddbc43c3aa153528478f53 100644 (file)
@@ -846,7 +846,7 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data)
                                ret = ep->status;
                                if (io_data->read && ret > 0) {
                                        ret = copy_to_iter(data, ret, &io_data->data);
-                                       if (unlikely(iov_iter_count(&io_data->data)))
+                                       if (!ret)
                                                ret = -EFAULT;
                                }
                        }