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

From: David Brownell (david-b@pacbell.net)
Date: Sun Sep 29 2002 - 15:48:38 EST


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/



This archive was generated by hypermail 2b29 : Mon Sep 30 2002 - 22:00:42 EST