While unplugging a Logitek Keyboard/mouse micro-receiver, I got the lockdep splat below. However, I don't fully understand this splat - I see nothing in flush_work() nor process_one_work() making use of "intf->reset_ws" - which seems to be a USB thing. I guess lockdep is being re-used to validate work stuff, and "lock" is just plain misleading. usb 2-1.1: USB disconnect, device number 3 ============================================= [ INFO: possible recursive locking detected ] 3.18.0+ #1459 Not tainted --------------------------------------------- kworker/0:1/2758 is trying to acquire lock: ((&intf->reset_ws)){+.+.+.}, at: [<c003ba90>] flush_work+0x0/0x264 but task is already holding lock: ((&intf->reset_ws)){+.+.+.}, at: [<c003ca40>] process_one_work+0x130/0x4b4 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock((&intf->reset_ws)); lock((&intf->reset_ws)); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by kworker/0:1/2758: #0: ("events"){.+.+.+}, at: [<c003ca40>] process_one_work+0x130/0x4b4 #1: ((&intf->reset_ws)){+.+.+.}, at: [<c003ca40>] process_one_work+0x130/0x4b4 #2: (&dev->mutex){......}, at: [<c0438c70>] usb_lock_device_for_reset+0x58/0xd0 #3: (&dev->mutex){......}, at: [<c038cc10>] device_release_driver+0x20/0x34 stack backtrace: CPU: 0 PID: 2758 Comm: kworker/0:1 Not tainted 3.18.0+ #1459 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Workqueue: events __usb_queue_reset_device Backtrace: [<c0012228>] (dump_backtrace) from [<c00123c0>] (show_stack+0x18/0x1c) r6:c140b5ac r5:c141ce9c r4:00000000 r3:e3b230c0 [<c00123a8>] (show_stack) from [<c06d7f00>] (dump_stack+0x7c/0x98) [<c06d7e84>] (dump_stack) from [<c00619a0>] (__lock_acquire+0x13f4/0x1bb0) r4:c0bd9190 r3:e3b230c0 [<c00605ac>] (__lock_acquire) from [<c00626c0>] (lock_acquire+0xb0/0x124) r10:00000000 r9:c003ba90 r8:00000000 r7:00000000 r6:00000000 r5:ed810670 r4:00000000 [<c0062610>] (lock_acquire) from [<c003bad4>] (flush_work+0x44/0x264) r10:ffffffed r9:c0a43170 r8:ed810400 r7:ed810670 r6:00000001 r5:ed810660 r4:00000000 [<c003ba90>] (flush_work) from [<c003d8f0>] (__cancel_work_timer+0x8c/0x124) r7:ffffffe0 r6:00000000 r5:00000000 r4:ed810660 [<c003d864>] (__cancel_work_timer) from [<c003d9b4>] (cancel_work_sync+0x14/0x18) r7:ed810420 r6:ed810420 r5:c0a43170 r4:ee357068 [<c003d9a0>] (cancel_work_sync) from [<c04476dc>] (usb_unbind_interface+0x90/0x280) [<c044764c>] (usb_unbind_interface) from [<c038cb9c>] (__device_release_driver+078/0xcc) r10:ffffffed r9:0000000c r8:fffffff4 r7:ee357000 r6:ed810420 r5:c0a43170 r4:ed810420 [<c038cb24>] (__device_release_driver) from [<c038cc18>] (device_release_driver+0x28/0x34) r5:ed810420 r4:ed810454 [<c038cbf0>] (device_release_driver) from [<c044794c>] (usb_driver_release_interface+0x80/0x84) r5:00000001 r4:ed810400 [<c04478cc>] (usb_driver_release_interface) from [<c0447970>] (usb_forced_unbind_intf+0x20/0x30) r7:ee357000 r6:ed80c000 r5:ed80c054 r4:ed810400 [<c0447950>] (usb_forced_unbind_intf) from [<c04479e4>] (unbind_marked_interfaces+0x64/0x74) r4:00000002 r3:00000020 [<c0447980>] (unbind_marked_interfaces) from [<c0447b58>] (usb_unbind_and_rebind_marked_interfaces+0x14/0x20) r6:ed80c050 r5:ffffffff r4:ee357000 r3:0000006b [<c0447b44>] (usb_unbind_and_rebind_marked_interfaces) from [<c043c470>] (usb_reset_device+0x1dc/0x234) r4:ed810000 r3:0000006b [<c043c294>] (usb_reset_device) from [<c0443f6c>] (__usb_queue_reset_device+0x40/0x58) r10:eefb9b00 r9:c0a59178 r8:00000000 r7:dd505eb0 r6:ee357000 r5:ee357068 r4:ed810260 [<c0443f2c>] (__usb_queue_reset_device) from [<c003cad0>] (process_one_work+0x1c0/0x4b4) r6:eefb6500 r5:dd6dde00 r4:ed810260 r3:c0443f2c [<c003c910>] (process_one_work) from [<c003ce34>] (worker_thread+0x34/0x4b0) r10:eefb6500 r9:dd6dde00 r8:00000008 r7:dd6dde18 r6:eefb6500 r5:00000001 r4:eefb6530 [<c003ce00>] (worker_thread) from [<c0042228>] (kthread+0xe0/0xfc) r10:00000000 r9:00000000 r8:00000000 r7:c003ce00 r6:dd6dde00 r5:00000000 r4:dd66e880 [<c0042148>] (kthread) from [<c000ecc8>] (ret_from_fork+0x14/0x2c) r7:00000000 r6:00000000 r5:c0042148 r4:dd66e880 -- FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html