On Mon, 22 Mar 2004, David Brownell wrote:
For the sake of paranoia ... shouldn't this refuse to do anything if there are any interfaces claimed by drivers other than usbfs?
Maybe. That's a cleanup for later on.
Fair enough, though ...
Perhaps even worse, if there are interfaces claimed by usbfs then calling usb_set_configuration() will result in deadlock.
This makes me think that if _any_ interfaces are claimed, then this call should be rejected.
This has long been one of those design flaws in "usbfs", and I don't think a real fix is in the near-term cards.
- Dave
Alan Stern
--- 1.88/drivers/usb/core/devio.c Wed Mar 17 14:16:46 2004 +++ edited/drivers/usb/core/devio.c Fri Mar 19 10:41:57 2004 @@ -753,7 +753,11 @@
if (get_user(u, (unsigned int __user *)arg)) return -EFAULT; - return usb_set_configuration(ps->dev, u); + if (ps->dev->actconfig && + ps->dev->actconfig->desc.bConfigurationValue == u) + return usb_reset_configuration(ps->dev); + else + return usb_set_configuration(ps->dev, u); }
static int proc_submiturb(struct dev_state *ps, void __user *arg)
------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel