diff options
author | Rui Miguel Silva <rui.silva@linaro.org> | 2015-05-20 14:53:33 +0100 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-05-26 10:20:57 -0500 |
commit | 342f39a6c8d34d638a87b7d5f2156adc4db2585c (patch) | |
tree | 37edb6b86d1f26e652e315f09ac556a5f343cf51 /drivers/usb | |
parent | da96cfc133350024ba68ef3289faeb539ee13872 (diff) | |
download | op-kernel-dev-342f39a6c8d34d638a87b7d5f2156adc4db2585c.zip op-kernel-dev-342f39a6c8d34d638a87b7d5f2156adc4db2585c.tar.gz |
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/usb')
-rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 2 |
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 71f68c4..3507f88 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; } } |