On Thu, Apr 06, 2000, David Brownell <[EMAIL PROTECTED]> wrote:
> Johannes Erdfelt wrote:
> > 
> > On disconnect(), all of the outstanding URB's are explicitily
> > unlinked by the HCD.
> 
> Not by the "user", though.

The user usually disconnects the device. Does that count? :)

Anyway, I think it was intended that the driver unlink all active
transfers and if there are any remaining, that the HCD code does it for
you.

Looking at the code, this is the case. If there are still URB's
outstanding, especially an Interrupt URB, after the driver's
disconnect() callback was made, it's a driver bug.

If the driver is removing the URB (via usb_unlink_urb) and he's getting
a status of EPIPE, it's the HCD's fault, in this case OHCI. This, I
would think, meets your definition of unlinked by user.

> > In that case, ENOENT is the appropriate error code.
> 
> So is reporting EPIPE when you actually get a stall.

But the transfer didn't STALL, the device got removed and hence the URB
got removed.

ENOENT is the appropriate error code.

JE


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

Reply via email to