From 907f728394677d0ef794df34f4d52170f6a3adeb Mon Sep 17 00:00:00 2001 From: Dongwoo Lee Date: Mon, 21 Aug 2023 20:25:43 +0900 Subject: [PATCH] usb: gadget: f_fs: Limit the maximum length of data transferring When the ffs daemons request transfer with large size buffer, the usb subsystems below cannot filled the buffer at once and then the request is stalled in f_fs_epfile_io function. In order to prevent this situation, this limits maximum length of data as PAGE_SIZE. Change-Id: Ib84b3493a56b21f33a07cf0533f8df71580b7540 Signed-off-by: Dongwoo Lee --- drivers/usb/gadget/function/f_fs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 3e59055aa504..c6a52e7424fd 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -1013,6 +1013,8 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) goto error_lock; } data_len = iov_iter_count(&io_data->data); + data_len = data_len > PAGE_SIZE ? PAGE_SIZE : data_len; + /* * Controller may require buffer size to be aligned to * maxpacketsize of an out endpoint. -- 2.34.1