From: Benoit Goby Date: Tue, 29 Nov 2011 02:01:03 +0000 (-0800) Subject: usb: gadget: android: Reset next_string_id before enable X-Git-Tag: firefly_0821_release~7613^2~216 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6a4a38525d60db7e915d559273d8c89db5a98edf;p=firefly-linux-kernel-4.4.55.git usb: gadget: android: Reset next_string_id before enable Reset next_string_id to 0 before enabling the gadget driver. Otherwise, after a large number of enable/disable cycles, bind will fail because we cannot allocate new string ids. String ids cannot be larger than 254 per USB spec. Change-Id: I44f5fece45008b7a0a18c025d4eb5ce842585c28 Signed-off-by: Benoit Goby --- diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c index d109bfb02f38..5d77899678f9 100644 --- a/drivers/usb/gadget/android.c +++ b/drivers/usb/gadget/android.c @@ -823,6 +823,7 @@ static ssize_t enable_store(struct device *pdev, struct device_attribute *attr, sscanf(buff, "%d", &enabled); if (enabled && !dev->enabled) { + cdev->next_string_id = 0; /* update values in composite driver's copy of device descriptor */ cdev->desc.idVendor = device_desc.idVendor; cdev->desc.idProduct = device_desc.idProduct;