Skip to content

Commit d356b3c

Browse files
dhavalegregkh
authored andcommitted
usb: gadget: f_fs: Fix ffs_epfile_read_iter to handle ITER_UBUF
iov_iter for ffs_epfile_read_iter can be ITER_UBUF with io_uring. In that case dup_iter() does not have to allocate anything and it can return NULL. ffs_epfile_read_iter treats this as a failure and returns -ENOMEM. Fix it by checking if iter_is_ubuf(). Fixes: 1e23db4 ("io_uring: use iter_ubuf for single range imports") Signed-off-by: Sandeep Dhavale <[email protected]> Acked-by: Jens Axboe <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent eddebe3 commit d356b3c

File tree

1 file changed

+1
-1
lines changed
  • drivers/usb/gadget/function

1 file changed

+1
-1
lines changed

drivers/usb/gadget/function/f_fs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1251,7 +1251,7 @@ static ssize_t ffs_epfile_read_iter(struct kiocb *kiocb, struct iov_iter *to)
12511251
p->kiocb = kiocb;
12521252
if (p->aio) {
12531253
p->to_free = dup_iter(&p->data, to, GFP_KERNEL);
1254-
if (!p->to_free) {
1254+
if (!iter_is_ubuf(&p->data) && !p->to_free) {
12551255
kfree(p);
12561256
return -ENOMEM;
12571257
}

0 commit comments

Comments
 (0)