There are a series of usb bugs in LKML that all boil down to recursive calls to 
device_del.  Some show up as null dereference OOPs in sysfs and others
show up similar to this for USB storage.  The problem is that the usb disable
calls device_del which eventually gets around to releasing the scsi layer which 
very politely does a device_del on its layered device, namely usb.  All these
null dereferences are from the previous pass because device_del clipped the 
device from all its lists, the one here being for power, as the first thing.
If you look at these various stack traces going all the way back, you see two 
calls to device_del.  For stacked devs like usb over/under scsi or serial, I 
don't (yet) know how this works at all.  There must be some escape in the chain 
that occasionally doesn't happen.  In the scsi case, however, the final+fatal 
call is deterministic.  One solution is to simply null test before removing 
from lists,
a good thing anyway, but that still leaves this logic lurking about for other 
innocent damsels to ravish.

One thing for certain is that my questions in the previous comment are
no longer relevant.  I can crash it on my own box with the same trace.

-- 
USB stops working after a while
https://bugs.launchpad.net/bugs/228746
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to