summaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/composite.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2018-06-27 04:33:56 +0200
committerFelipe Balbi <felipe.balbi@linux.intel.com>2018-07-17 09:12:51 +0200
commit50b9773c13bffbef32060e67c4483ea7b2eca7b5 (patch)
treed1fed8535c3c4a8c981da6dc66c8928230628c42 /drivers/usb/gadget/composite.c
parentusb: gadget: aspeed-vhub: Fix SETUP packets with OUT data phase (diff)
downloadlinux-50b9773c13bffbef32060e67c4483ea7b2eca7b5.tar.xz
linux-50b9773c13bffbef32060e67c4483ea7b2eca7b5.zip
usb: gadget: Fix OS descriptors support
The current code is broken as it re-defines "req" inside the if block, then goto out of it. Thus the request that ends up being sent is not the one that was populated by the code in question. This fixes RNDIS driver autodetect by Windows 10 for me. The bug was introduced by Chris rework to remove the local queuing inside the if { } block of the redefined request. Fixes: 636ba13aec8a ("usb: gadget: composite: remove duplicated code in OS desc handling") Cc: <stable@vger.kernel.org> # v4.17 Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to 'drivers/usb/gadget/composite.c')
-rw-r--r--drivers/usb/gadget/composite.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index d2fa071c21b1..b8a15840b4ff 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -1819,7 +1819,6 @@ unknown:
if (cdev->use_os_string && cdev->os_desc_config &&
(ctrl->bRequestType & USB_TYPE_VENDOR) &&
ctrl->bRequest == cdev->b_vendor_code) {
- struct usb_request *req;
struct usb_configuration *os_desc_cfg;
u8 *buf;
int interface;