multiple interface test case

Roman Kagan rkagan at mail.ru
Wed Apr 13 07:04:35 EDT 2005


On Wed, Apr 13, 2005 at 12:44:11PM +0200, Duncan Sands wrote:
>         /* don't disconnect from disconnect(), or before dev_add() */
>         if (!klist_node_attached(&dev->knode_driver) && !klist_node_attached(&dev->knode_bus)) {
>                 printk("usb_driver_release_interface: releasing\n");
>                 device_release_driver(dev);
>         } else printk("usb_driver_release_interface: skipping\n");
> 
> and here's what I see
> 
> 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?

> No, we never call device_release_driver from
> usb_driver_release_interface.

Then -rc2-mm3 is even worse broken than I thought :)  OK I'm downloading
it now, I'll try to look into it.

Roman.



More information about the Usbatm mailing list