On Sun, 28 May 2000, Greg KH wrote:
> When the Visor completes whatever it was told to do, it disconnects from
> the usb bus, this causes the attached oops which looks suspiciously like a
> slab poisoning error.
I don't see any other choice. At the time usb_disconnect is called someone
has already freed the hub.
See hub.c:usb_hub_events:
spin_lock_irqsave(&hub_event_lock, flags);
...
/* Grab the next entry from the beginning of the list */
tmp = hub_event_list.next;
...
spin_unlock_irqrestore(&hub_event_lock, flags);
o Now we have to hub and we drop the event lock.
if (usb_get_port_status(dev, i + 1, &portsts) < 0) {
err("get_port_status failed");
continue;
}
o Sleeps. At this point someone could call usb_disconnect()
or rather usb_free_dev() for the hub. The question is how? The occurences
of these in usb-ohci seem to jive with usb-uhci usage and seem highly
unlikely. You weren't resuming or rmmod:ing usb-ohci at the time I assume.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]