On Friday 21 June 2013 09:12:38 Ming Lei wrote:
> >> This should be enough since during remove path usbcore will wait for all
> >> URBs' completion which is only triggered by tasklet, so once all URBs are
> >> finished, the tasklet list has been empty already.
> >
> > No, usbcore only waits until the urb_list for each endpoint is empty.
> > It doesn't keep track of the individual URB completions.  Look at
> > usb_hcd_flush_endpoint() and you'll see.
> 
> But, if URBs still aren't completed after usb_disconnect(), it should be
> bug of usbcore or driver, shouldn't it?

A driver cannot know what caused the call to disconnect(). That includes
driver unbind. Doing IO to a device that another driver may be bound to
is certainly a bug.
Nevertheless it usually works and it is desirable to keep that behavior.

        Regards
                Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to