Re: 31-rc3-mmotm0716 - dead USB trackball mouse kills entire system

From: Valdis . Kletnieks
Date: Mon Jul 27 2009 - 19:59:44 EST


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: pgp00000.pgp
Description: PGP signature