Description of problem: Got this unplugging a USB-cam: usb 1-5: USB disconnect, address 9 usb 1-5: unregistering device usb 1-5: usb_disable_device nuking all URBs usb 1-5: unlink qh16-0001/f7a54680 start 15 [1/0 us] ehci_hcd 0000:00:1d.7: shutdown urb c4d42a50 ep7in-intr usb 1-5: unregistering interface 1-5:1.0 ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.26-138.fc10.i686 #1 ------------------------------------------------------- khubd/187 is trying to acquire lock: (videodev_lock){--..}, at: [<f92e947f>] video_unregister_device+0x12/0x4f [videodev] but task is already holding lock: (&uvc_driver.open_mutex){--..}, at: [<f932119b>] uvc_disconnect+0x29/0x47 [uvcvideo] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&uvc_driver.open_mutex){--..}: [<c0448957>] __lock_acquire+0xaa0/0xc18 [<c0448b39>] lock_acquire+0x6a/0x90 [<c0669cc9>] mutex_lock_nested+0xdb/0x271 [<f93239f1>] uvc_v4l2_open+0x28/0xa1 [uvcvideo] [<f92e9414>] video_open+0xc1/0x11a [videodev] [<c0491b88>] chrdev_open+0x119/0x135 [<c048de3d>] __dentry_open+0x159/0x251 [<c048dfbc>] nameidata_to_filp+0x1f/0x33 [<c04992b8>] do_filp_open+0x348/0x6c8 [<c048dc03>] do_sys_open+0x40/0xb6 [<c048dcbb>] sys_open+0x1e/0x26 [<c0404c76>] syscall_call+0x7/0xb [<ffffffff>] 0xffffffff -> #0 (videodev_lock){--..}: [<c0448876>] __lock_acquire+0x9bf/0xc18 [<c0448b39>] lock_acquire+0x6a/0x90 [<c0669cc9>] mutex_lock_nested+0xdb/0x271 [<f92e947f>] video_unregister_device+0x12/0x4f [videodev] [<f9322fa7>] uvc_delete+0x2a/0xbb [uvcvideo] [<c0504981>] kref_put+0x39/0x44 [<f93211ac>] uvc_disconnect+0x3a/0x47 [uvcvideo] [<c05b4b7d>] usb_unbind_interface+0x47/0x8a [<c057a3ef>] __device_release_driver+0x78/0x96 [<c057a4c2>] device_release_driver+0x1b/0x26 [<c0579c2f>] bus_remove_device+0x82/0x9c [<c0578b7f>] device_del+0xda/0x14f [<c05b25fb>] usb_disable_device+0xb7/0x122 [<c05ae2f9>] usb_disconnect+0xa2/0x139 [<c05af3a2>] hub_thread+0x689/0x100a [<c043bd37>] kthread+0x3b/0x61 [<c040590f>] kernel_thread_helper+0x7/0x10 [<ffffffff>] 0xffffffff other info that might help us debug this: 1 lock held by khubd/187: #0: (&uvc_driver.open_mutex){--..}, at: [<f932119b>] uvc_disconnect+0x29/0x47 [uvcvideo] stack backtrace: Pid: 187, comm: khubd Not tainted 2.6.26-138.fc10.i686 #1 [<c0447ca1>] print_circular_bug_tail+0x5b/0x66 [<c0447bc4>] ? print_circular_bug_header+0xa6/0xb1 [<c0448876>] __lock_acquire+0x9bf/0xc18 [<c0448b39>] lock_acquire+0x6a/0x90 [<f92e947f>] ? video_unregister_device+0x12/0x4f [videodev] [<c0669cc9>] mutex_lock_nested+0xdb/0x271 [<f92e947f>] ? video_unregister_device+0x12/0x4f [videodev] [<f92e947f>] ? video_unregister_device+0x12/0x4f [videodev] [<f92e947f>] video_unregister_device+0x12/0x4f [videodev] [<f9322fa7>] uvc_delete+0x2a/0xbb [uvcvideo] [<f9322f7d>] ? uvc_delete+0x0/0xbb [uvcvideo] [<c0504981>] kref_put+0x39/0x44 [<f93211ac>] uvc_disconnect+0x3a/0x47 [uvcvideo] [<c05b4b7d>] usb_unbind_interface+0x47/0x8a [<c057a3ef>] __device_release_driver+0x78/0x96 [<c057a4c2>] device_release_driver+0x1b/0x26 [<c0579c2f>] bus_remove_device+0x82/0x9c [<c0578b7f>] device_del+0xda/0x14f [<c05b25fb>] usb_disable_device+0xb7/0x122 [<c05ae2f9>] usb_disconnect+0xa2/0x139 [<c05af3a2>] hub_thread+0x689/0x100a [<c043bf93>] ? autoremove_wake_function+0x0/0x33 [<c05aed19>] ? hub_thread+0x0/0x100a [<c043bd37>] kthread+0x3b/0x61 [<c043bcfc>] ? kthread+0x0/0x61 [<c040590f>] kernel_thread_helper+0x7/0x10 ======================= usb 1-5:1.0: uevent usb 1-5: unregistering interface 1-5:1.1 usb 1-5:1.1: uevent usb 1-5: unregistering interface 1-5:1.2 usb 1-5:1.2: uevent usb 1-5: unregistering interface 1-5:1.3 usb 1-5:1.3: uevent usb 1-5: uevent hub 1-0:1.0: debounce: port 5: total 100ms stable 100ms status 0x100 Version-Release number of selected component (if applicable): kernel-2.6.26-138.fc10.i686 How reproducible: Don't know Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
already reported upstream, and a patch pending. I'll merge it into rawhide in the meantime.
I can no longer reproduce this. Close?