Re: Questions about USB core reset behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 25 Apr 2011, Sarah Sharp wrote:

> On Mon, Apr 25, 2011 at 03:18:46PM -0400, Alan Stern wrote:
> > On Mon, 25 Apr 2011, Sarah Sharp wrote:
> > 
> > > Random question time. :)
> > > 
> > > Do USB device drivers have to cancel all URBs that are pending for a
> > > device before calling usb_reset_device?  Will the drivers have to wait
> > > for the URBs to complete before resetting the device?
> > 
> > There is no requirement that drivers cancel all URBs before a reset 
> > occurs.  Indeed, some drivers can't because they have no way to know 
> > when another driver bound to another interface on the same device wants 
> > to do a reset, i.e., they have no pre_reset callback.
> 
> Ah, ok.  Apparently Windows recommends canceling all outstanding
> transfers before issuing a port reset, which was apparently what the
> chipset folks were hoping Linux also suggested.  Oh well.

I don't know offhand of any drivers that leave URBs active while doing
a reset.  But there's no recommendation about it.

> > Of course, an URB that remains active during a reset is quite likely to
> > fail.
> 
> Mmm, so the active URB's internal structures on the frame list and async
> list would still be there during the reset?

Correct.

>  I think that's what the
> chipset folks are fishing for.
> 
> > I trust these answers will dismay your chipset people...  :-)
> 
> Yes, probably. :)

It's hard to see why this should concern them very much.  Unless their 
hardware designs are buggy and crash when trying to send packets 
through a port that's being reset...

Alan Stern

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux