On Thu, Jun 06, 2019 at 01:55:37PM +0000, Bollinger, Seth wrote: > Hello All, > > Recently we saw a problem where the device reset will fail due to a configuration descriptor check in hub.c:5600. > > if (memcmp(buf, udev->rawdescriptors[index], old_length) > != 0) { > dev_dbg(&udev->dev, "config index %d changed (#%d)\n", > index, > ((struct usb_config_descriptor *) buf)-> > bConfigurationValue); > changed = 1; > break; > } > > The descriptors returned from the device have a different iInterface. I checked the usb spec and couldn’t find anything that says iInterface can’t change. I don’t have the source for the device, but I think it’s probably generating the interface string each reset and returning a different index for it (“ADB interface”). > > Has anyone else seen this? Does the spec guarantee that iInterface should never change between device resets? If the descriptor changes between resets, that means that something changed and we need to start over with it. What is the problem that this is causing? thanks, greg k-h