On Fri, 24 Jul 2009 10:29:51 EDT, Alan Stern said: > You're talking about messages like this: > > > Jul 23 11:10:29 turing-police kernel: [ 571.965568] drivers/hid/usbhid/hid-core.c: can't reset device, 0000:00:1d.7-8.3/input0, status -71 > > Those messages are produced by the following statement in > drivers/hid/usbhid/hid-core.c:hid_reset(): > > err_hid("can't reset device, %s-%s/input%d, status %d", > hid_to_usb_dev(hid)->bus->bus_name, > hid_to_usb_dev(hid)->devpath, > usbhid->ifnum, rc); > > I don't know how long that subroutine and in particular that line have > been present, but it has been quite a while. Certainly since 2.6.20. That code may have been there for a long time, but apparently something *else* in the USB/HID pile of code changed, that we're now calling hid_reset() where we didn't used to before, or hid_reset() never reached that err_hid() call before, or something. > > > This is a bug. For more discussion see this thread: > > > > > > http://marc.info/?t=124807676700001&r=1&w=2 > > > > > > You should try the patch given there. > > > > OK, will do that, see if it improves things... > > Let me know what happens. Confirming - the patch in that thread prevents the system lockup I was seeing. So it looks like hid_reset() getting more chatty sometime in the last 2 weeks was a red herring, and one I can't actually complain about - it was quite legitimately whinging about not being able to reset a device that was in fact dead in the water at the time. Given that, and a working patch for ehci-hcd.c, I'm having a hard time finding the enthusiasm to track down what exactly changed in hid-core.c. :) The change in hid-core.c behavior just had the bad luck to land in -mmotm at the exact same time the bug in ehci-hcd.c landed. So we had two user-visible behavior changes in the same area of code at the same time. Hilarity ensues. :) Thanks for pointing me at the actual fix. ;)
Attachment:
pgpfe6Cc6amgi.pgp
Description: PGP signature