Commit 8296345a authored by SangSu Park's avatar SangSu Park Committed by Greg Kroah-Hartman

USB: g_printer: fix handling zero-length packet

g_printer doesn't have to check whether the data size is a multiple of
MaxPacketSize, because device controller driver already make that check.

Signed-off-by: SangSu Park<sangsu@gmail.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0b14c388
...@@ -1278,8 +1278,7 @@ printer_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) ...@@ -1278,8 +1278,7 @@ printer_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
/* respond with data transfer before status phase? */ /* respond with data transfer before status phase? */
if (value >= 0) { if (value >= 0) {
req->length = value; req->length = value;
req->zero = value < wLength req->zero = value < wLength;
&& (value % gadget->ep0->maxpacket) == 0;
value = usb_ep_queue(gadget->ep0, req, GFP_ATOMIC); value = usb_ep_queue(gadget->ep0, req, GFP_ATOMIC);
if (value < 0) { if (value < 0) {
DBG(dev, "ep_queue --> %d\n", value); DBG(dev, "ep_queue --> %d\n", value);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment