From: Greg Kroah-Hartman Date: Thu, 30 Apr 2015 20:56:54 +0000 (+0200) Subject: 4.0-stable patches X-Git-Tag: v3.10.77~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12d767a2e60dc7c8ca70d0bfdba743b6496cbc09;p=thirdparty%2Fkernel%2Fstable-queue.git 4.0-stable patches added patches: usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch --- diff --git a/queue-4.0/series b/queue-4.0/series index dd6e43010d6..9f6dac8c3a8 100644 --- a/queue-4.0/series +++ b/queue-4.0/series @@ -23,3 +23,4 @@ btrfs-fix-inode-eviction-infinite-loop-after-cloning-into-it.patch btrfs-fix-inode-eviction-infinite-loop-after-extent_same-ioctl.patch mm-hugetlb-use-pmd_page-in-follow_huge_pmd.patch powerpc-hugetlb-call-mm_dec_nr_pmds-in-hugetlb_free_pmd_range.patch +usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch diff --git a/queue-4.0/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch b/queue-4.0/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch new file mode 100644 index 00000000000..cf4dd6e44f5 --- /dev/null +++ b/queue-4.0/usb-gadget-printer-enqueue-printer-s-response-for-setup-request.patch @@ -0,0 +1,48 @@ +From eb132ccbdec5df46e29c9814adf76075ce83576b Mon Sep 17 00:00:00 2001 +From: Andrzej Pietrasiewicz +Date: Tue, 3 Mar 2015 10:52:05 +0100 +Subject: usb: gadget: printer: enqueue printer's response for setup request + +From: Andrzej Pietrasiewicz + +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 +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } +