multiple interface test case
Duncan Sands
baldrick at free.fr
Wed Apr 13 07:17:37 EDT 2005
> > release_interfaces: interface 0
> > usb_driver_release_interface: skipping <= somehow I failed to see this!
> > release_interfaces: interface 1
> > usb_driver_release_interface: skipping
> > release_interfaces: interface 2
> > usb_driver_release_interface: skipping
>
> That is weird then: who has removed _all_ interfaces from the driver's
> list? On the first disconnect(), the other two interfaces must still
> remain on the list. Otherwise what does driver_detach() iterate over?
I think it's this one, in device_release_driver:
klist_del(&dev->knode_driver);
it's called just before doing the disconnect call
if (drv->remove)
drv->remove(dev);
I suppose klist_del removes the driver from the list of drivers,
which means that this test in usb_driver_release_interface fires:
klist_node_attached(&dev->knode_driver)
driver_detach iterates over devices, but this is a test on the
driver.
Ciao,
D.
More information about the Usbatm
mailing list