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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html