speedtch testatm.c,1.4,1.5

Duncan Sands baldrick at free.fr
Fri Apr 8 08:39:16 EDT 2005


Hi Roman,

> > I already set it to NULL for just this reason - check the code.
> 
> Yep, I've already apologized :)

no problem! :)

> > And you
> > don't recurse into disconnect for the interface disconnect was called
> > on: the usb_driver_release_interface code ignores the release in this
> > case.
> 
> I don't see how...  usb_driver_release_interface checks if the
> dev->driver_list is empty for this, but it is emptied only in
> device_release_driver called after this check.  This sorta limits the
> recursion depth to 2, but doesn't exclude it.

I'm only talking about the following: you get a disconnect on
a certain interface, say interface number 1.  If you call
usb_driver_release_interface for interface 1 from the disconnect
call, then it bails out at this line:

        if (!klist_node_attached(&dev->knode_driver) && !klist_node_attached(&dev->knode_bus))

However, you can call it for other interfaces != 1, and
disconnect will indeed be called for those interfaces.

Ciao,

D.




More information about the Usbatm mailing list