Quoting me:

> > If there was no intention that user intention matter, then
> > the description in <linux/usb.h> should change.
> 
> The documentation for URB's is not mature. There have been a couple of
> instances already where clarification or a slight change was needed.
> 
> Regardless, IMHO, you're taking the user portion too seriously.

Heck, I just believe the "specs" should be correct!


> The 2 possible scenario's are the driver unlinks the URB, or the HCD
> does. In that order.
> 
> Quickly looking at the OHCI code, it appears that these 2 conditions are
> handled differently.

Which could explain everything (scenario later).


> The original question was, what code should be returned. ENOENT should
> be returned. Why OHCI is not returning that code is beyond me.

Actually I thought the original question was how to resolve the
difference Matt was seeing.  There's a hypothesis now:


> In the process, it may have uncovered a bug in the usb-storage driver
> as well. (If it doesn't explicitily unlink the URB during disconnect())

I could easily see that causing the trouble -- since it might
be that by the time the HCD next deals with that URB, there
really _is_ a stalled transfer to report.

I'm still looking, but I could see the OHCI free_dev() code
not handling something correctly.  Particularly since I've
seen an Oops in that area; incorrect handling could cause
either failure mode depending on other circumstances. 

- Dave

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to