提交 85b4b3c8 编写于 作者: T Thomas Faber 提交者: Greg Kroah-Hartman

usb: gadgetfs: return number of bytes on ep0 read request

A read from GadgetFS endpoint 0 during the data stage of a control
request would always return 0 on success (as returned by
wait_event_interruptible) despite having written data into the user
buffer.
This patch makes it correctly set the return value to the number of
bytes read.
Signed-off-by: NThomas Faber <thfabba@gmx.de>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 60b9bd8d
...@@ -1043,6 +1043,8 @@ ep0_read (struct file *fd, char __user *buf, size_t len, loff_t *ptr) ...@@ -1043,6 +1043,8 @@ ep0_read (struct file *fd, char __user *buf, size_t len, loff_t *ptr)
// FIXME don't call this with the spinlock held ... // FIXME don't call this with the spinlock held ...
if (copy_to_user (buf, dev->req->buf, len)) if (copy_to_user (buf, dev->req->buf, len))
retval = -EFAULT; retval = -EFAULT;
else
retval = len;
clean_req (dev->gadget->ep0, dev->req); clean_req (dev->gadget->ep0, dev->req);
/* NOTE userspace can't yet choose to stall */ /* NOTE userspace can't yet choose to stall */
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册