diff --git a/drivers/usbdev/usbdev_fs.c b/drivers/usbdev/usbdev_fs.c index 23c69400a1..ed3f13a6fe 100644 --- a/drivers/usbdev/usbdev_fs.c +++ b/drivers/usbdev/usbdev_fs.c @@ -644,6 +644,16 @@ static ssize_t usbdev_fs_read(FAR struct file *filep, FAR char *buffer, PANIC(); } + + /* The container buffer length is less than the maximum length. + * It is an independent packet of requests and needs to be + * returned directly. + */ + + if (reqlen < fs_ep->ep->maxpacket) + { + break; + } } nxmutex_unlock(&fs_ep->lock);