usb_reset_device takes hdev->serialize. However, hub_reset is
(only) called by hub_events, which already holds the lock. Thanks
to Tyler Nielsen for the bug report and helpful backtrace.
Signed-off-by: Duncan Sands <[EMAIL PROTECTED]>
--- local_tree.orig/drivers/usb/core/hub.c 2004-07-25 14:34:32.000000000 +0200
+++ local_tree/drivers/usb/core/hub.c 2004-08-04 10:52:56.974137399 +0200
@@ -772,6 +772,7 @@
}
}
+/* The caller must own the device lock */
static int hub_reset(struct usb_hub *hub)
{
struct usb_device *hdev = hub->hdev;
@@ -789,7 +790,7 @@
else
return -1;
- if (usb_reset_device(hdev))
+ if (__usb_reset_device(hdev))
return -1;
hub->urb->dev = hdev;
-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel