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