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]

Reply via email to