summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRui Miguel Silva <rui.silva@linaro.org>2015-05-20 14:53:33 +0100
committerFelipe Balbi <balbi@ti.com>2015-05-26 10:20:57 -0500
commit342f39a6c8d34d638a87b7d5f2156adc4db2585c (patch)
tree37edb6b86d1f26e652e315f09ac556a5f343cf51 /drivers
parentda96cfc133350024ba68ef3289faeb539ee13872 (diff)
downloadlinux-342f39a6c8d34d638a87b7d5f2156adc4db2585c.tar.gz
linux-342f39a6c8d34d638a87b7d5f2156adc4db2585c.tar.bz2
linux-342f39a6c8d34d638a87b7d5f2156adc4db2585c.zip
usb: gadget: f_fs: fix check in read operation
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/gadget/function/f_fs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 71f68c48103e..3507f880eb74 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -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;
}
}