Messages in this thread |  | | | Date | Thu, 13 May 2004 17:03:09 -0400 (EDT) | | From | Alan Stern <> | | Subject | Re: PATCH: (as279) Don't delete interfaces until all are unbound |
| |
On Thu, 13 May 2004, Duncan Sands wrote:
> Hi Alan, > > > + /* Now that the interfaces are unbound, nobody should > > + * try to access them. > > + */ > > how is usbfs going to claim interfaces after this?
After this there _are_ no interfaces! They've all been destroyed by usb_disable_device(), called as part of usb_set_configuration() or usb_disconnect(). Of course, usb_set_configuration() will go ahead and create a new set of interfaces that usbfs can then bind.
> > + * Don't call this function unless you are bound to one of the interfaces > > + * on this device or you own the dev->serialize semaphore! > > Owning dev->serialize won't stop an Oops if the interfaces are all NULL...
If you own dev->serialize then usb_disable_device() can't be running concurrently, since it requires its caller to own that semaphore (although that may not be stated explicitly). Hence either the interfaces won't be NULL or else dev->actconfig will be NULL, and in either case usb_ifnum_to_if() will work okay. Alan Stern
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |