Hi,

hcd_data_lock is taken too late.

static int hcd_submit_urb (struct urb *urb, int mem_flags)
{
        int                     status;
        struct usb_hcd          *hcd = urb->dev->bus->hcpriv;

You've just followed a pointer that you haven't validated.
If the driver has improper locking, your potentially dead.
That's why the driver has to lock usb_submit_urb() against
driver->disconnect() and you need to unlink the urbs
after it.

        Regards
                Oliver



-------------------------------------------------------
This sf.net email is sponsored by: Influence the future
of Java(TM) technology. Join the Java Community
Process(SM) (JCP(SM)) program now.
http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0002en

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to