lkml.org 
[lkml]   [2004]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 14:03    [from the cache]
©2003-2011 Jasper Spaans