OSDN Git Service

usb: gadget: android: Reset next_string_id before enable
authorBenoit Goby <benoit@android.com>
Tue, 29 Nov 2011 02:01:03 +0000 (18:01 -0800)
committerBenoit Goby <benoit@android.com>
Tue, 29 Nov 2011 03:02:13 +0000 (19:02 -0800)
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 <benoit@android.com>
drivers/usb/gadget/android.c

index d109bfb..5d77899 100644 (file)
@@ -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;