serious 2.6 bug in USB subsystem?

From: David Mosberger
Date: Mon Oct 27 2003 - 17:36:44 EST


One-line summary: plug-in your USB keyboard, see your machine die.

So, I have this non-name USB keyboard (with built-in 2-port USB hub)
which reliably crashes 2.6.0-test{8,9} on both x86 and ia64. In
retrospect, it's clear to me that the same keyboard also occasionally
crashes 2.4 kernels, but there the problem appears more seldom.
Perhaps once in 10 reboots and once the machine is booted and the
keyboard is running, it keeps on working. The keyboard in question is
a BTC 5141H.

I'm wondering if anybody out there has the same keyboard and could see
if the same problem exists with all 5141H keyboards.

In any case, even if the keyboard happened to be completely broken, I
don't think it should be possible to crash the kernel merely by
connecting a (potentially) bad USB device, so, regardless, there seems
to be something off in the 2.6 USB subsystem.

Here is a more detailed description of how to reproduce the problem
and the behavior that I'm seeing with 2.6 (I don't think the exact
kernel version matters much; it definitely happens both with
2.6.0-test8 and 2.6.0-test9):

1) disconnect the 5141H keyboard
2) power on the machine
3) boot into Linux 2.6
4) connect the keyboard
5) see the normal "USB HID" keyboard connection message
6) wait a few seconds
7) machine is dead

On x86, I see this message prior to the death of the machine:

drivers/usb/input/hid-core.c: ctrl urb status -104 received
drivers/usb/input/hid-core.c: timeout initializing reports

On ia64, the keyboards triggers an MCA apparently because the USB
controller ends up trying to read from physical address 0xf0000000,
which is a write-only area for the box in question.

I don't have a lot of experience with debugging the USB stack, but if
there is something in particular you want me to try, let me know.

Thanks,

--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/