On Wednesday 10 December 2003 18:34, David Brownell wrote:
Unfortunately, usb_physical_reset_device calls usb_set_configuration which takes dev->serialize.
Not since late August it doesn't ...
In current 2.5 bitkeeper it does.
usb_physical_reset_device() does not call usb_set_configuration() except in the known-broken (for other reasons too!) "firmware changed" path. Known-broken, but not yet removed since nobody has reported running into that or the other deadlock; the real fix is force re-enumeration of the device.
The main path uses usb_control_msg(), because usb_reset_device() currently guarantees it preserves (restore) altsettings as well as driver bindings. It couldn't even use usb_reset_configuration(), since that gives altsettings their initial values (zero).
- Dave
Duncan.
int usb_set_configuration(struct usb_device *dev, int configuration) { int i, ret; struct usb_host_config *cp = NULL;
/* dev->serialize guards all config changes */ down(&dev->serialize);
------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel