Re: PROBLEM: kernel BUG in usb-ohci.c:902!

David Brownell (david-b@pacbell.net)
Sun, 29 Sep 2002 13:48:38 -0700


Hmm, if I look at that line in the 2.4.20-pre7 kernel, I see:

/* likely some interface's driver has a refcount bug */
err ("bus %s devnum %d deletion in interrupt",
ohci->ohci_dev->slot_name, usb_dev->devnum);
BUG ();

That BUG() has been an "oops now predictably, or oops later randomly"
situation, and EVERY (!!!) time it's been an issue, the problem has
been traced to exactly what that comment says: some interface's
driver has bogus disconnect() processing, and is not cleaning up. (*)

It's likely the problem is in the driver for one of your USB devices.
Given what I saw, it sure looks like "prism2_usb" is the problem.

And from what I saw last time I looked at that driver, I can VERY
easily believe that ... in fact I think I've seen similar reports
show up before, that's why I took a look at it. The prism2_usb folk
need to make sure their disconnect() routine (a) prevents all further
driver requests to that device, (b) unlinks all urbs it submitted,
and (c) waits for them to finish unlinking.

- Dave

(*) Maybe a better response would be to just leak memory, but
that's how the ohci driver evolved ... it took a long time
to establish that the oopsing was really caused by bogus
disconnect() processing in the layered usb device handling.

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