On Wed, 18 Jan 2006, Greg KH wrote:

> We can not call put_device() from irq context :(
> 
> I added a "might_sleep()" to the driver core and get the following from
> the ehci driver.  Any thoughts?

In principle the put_device and corresponding get_device calls aren't
needed.  We don't release a usb_device structure until after disabling all
its endpoints, and disabling an endpoint will wait until all the URBs for
that endpoint have completed.  So there's no reason to keep a reference to
the device structure for each URB.

I see that uhci-hcd is guilty of the same thing (reference acquired for 
each QH, released while holding a spinlock).  Probably each of the 
host controller drivers is.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to