multiple interface test case

Roman Kagan rkagan at mail.ru
Wed Apr 13 11:40:17 EDT 2005


Now tell me how we both missed that :) :

--- linux-2.6.12-rc2-mm3/drivers/usb/core/usb.c~	2005-04-13 15:13:44.000000000 +0400
+++ linux-2.6.12-rc2-mm3/drivers/usb/core/usb.c	2005-04-13 19:33:54.000000000 +0400
@@ -323,7 +323,7 @@ void usb_driver_release_interface(struct
 		return;
 
 	/* don't disconnect from disconnect(), or before dev_add() */
-	if (!klist_node_attached(&dev->knode_driver) && !klist_node_attached(&dev->knode_bus))
+	if (klist_node_attached(&dev->knode_driver) && klist_node_attached(&dev->knode_bus))
 		device_release_driver(dev);
 
 	dev->driver = NULL;


This makes -mm3 behave similar to vanilla kernel (and is obviously
correct :).  However, my patch for -mm doesn't seem to fix it, I must
have got this stack popping with klists wrong...

Roman.



More information about the Usbatm mailing list