Bug 455521

Summary: -138.fc10: INFO: possible circular locking dependency detected, associated with USB camera
Product: [Fedora] Fedora Reporter: Tom London <selinux>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-08-05 22:49:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tom London 2008-07-15 20:48:09 UTC
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:

Comment 1 Dave Jones 2008-07-15 21:12:06 UTC
already reported upstream, and a patch pending.  I'll merge it into rawhide in
the meantime.

Comment 2 Tom London 2008-07-24 00:28:31 UTC
I can no longer reproduce this.

Close?