]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Apr 2015 20:56:45 +0000 (22:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Apr 2015 20:56:45 +0000 (22:56 +0200)
added patches:
usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch

queue-3.19/series
queue-3.19/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch [new file with mode: 0644]

index 5c8c515c48807b6d21b8cfb2c440268a40c8b443..33aa3174078881ce48e7908e60528a4618e82040 100644 (file)
@@ -17,3 +17,4 @@ btrfs-fix-log-tree-corruption-when-fs-mounted-with-o-discard.patch
 btrfs-don-t-accept-bare-namespace-as-a-valid-xattr.patch
 btrfs-fix-inode-eviction-infinite-loop-after-cloning-into-it.patch
 btrfs-fix-inode-eviction-infinite-loop-after-extent_same-ioctl.patch
+usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch
diff --git a/queue-3.19/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch b/queue-3.19/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch
new file mode 100644 (file)
index 0000000..cf4dd6e
--- /dev/null
@@ -0,0 +1,48 @@
+From eb132ccbdec5df46e29c9814adf76075ce83576b Mon Sep 17 00:00:00 2001
+From: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
+Date: Tue, 3 Mar 2015 10:52:05 +0100
+Subject: usb: gadget: printer: enqueue printer's response for setup request
+
+From: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
+
+commit eb132ccbdec5df46e29c9814adf76075ce83576b upstream.
+
+Function-specific setup requests should be handled in such a way, that
+apart from filling in the data buffer, the requests are also actually
+enqueued: if function-specific setup is called from composte_setup(),
+the "usb_ep_queue()" block of code in composite_setup() is skipped.
+
+The printer function lacks this part and it results in e.g. get device id
+requests failing: the host expects some response, the device prepares it
+but does not equeue it for sending to the host, so the host finally asserts
+timeout.
+
+This patch adds enqueueing the prepared responses.
+
+Fixes: 2e87edf49227: "usb: gadget: make g_printer use composite"
+Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/legacy/printer.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/usb/gadget/legacy/printer.c
++++ b/drivers/usb/gadget/legacy/printer.c
+@@ -1031,6 +1031,15 @@ unknown:
+               break;
+       }
+       /* host either stalls (value < 0) or reports success */
++      if (value >= 0) {
++              req->length = value;
++              req->zero = value < wLength;
++              value = usb_ep_queue(cdev->gadget->ep0, req, GFP_ATOMIC);
++              if (value < 0) {
++                      ERROR(dev, "%s:%d Error!\n", __func__, __LINE__);
++                      req->status = 0;
++              }
++      }
+       return value;
+ }