On Fri, 31 Jan 2020, Paul Zimmerman wrote: > > Note that performing the unnecessary check is not actually a bug. > > Devices are supposed to be able to send descriptors back to the host > > even when they are busy doing something else. The underlying cause of > > Paul's problem lies in his Bluetooth adapter. Nevertheless, we > > shouldn't perform the same check twice in a row -- and as a nice side > > benefit, removing the extra check allows the Bluetooth adapter to work > > more reliably. > > Actually, at the time the failure happens, the bluetooth driver is putting > the device into a "manufacturer mode" and downloading a firmware patch to > the device. So I don't think we can fault the device for not responding to > a get-descriptor request at that point. Probably there should be some kind > of locking in the driver while that is being done. Heh. We don't have any locking of that sort in the kernel. Any user at any time can run "lsusb -v" and that program will try to communicate with every attached USB device. There's no way to claim exclusive rights to a device. The fact that firmware loading works at all is more or less a matter of luck (although the odds are with us). > Nevertheless, your patch makes everything work again, so I think it's > "good enough" :) > > Thanks, > Paul You're welcome. Alan Stern