[linux-yocto] usb: ehci: lockdep splat at startup

Zhenbo Gao zhenbo.gao at windriver.com
Tue May 24 00:05:26 PDT 2016


Hi All,

Ericsson AB found the following lockdep splat information on axxiaarm board:
[ 4.491058] ======================================================
[ 4.497232] [ INFO: possible circular locking dependency detected ]
[ 4.503495] 4.1.15-rt13+ #8 Not tainted
[ 4.507325] -------------------------------------------------------
[ 4.513587] swapper/0/0 is trying to acquire lock:
[ 4.518371] (&(&io->lock)->rlock){-.....}, at: [<c0796868>] sg_complete+0x20/0x1cc
[ 4.526058]
[ 4.526058] but task is already holding lock:
[ 4.531885] (&(&ehci->lock)->rlock){-.-...}, at: [<c07aa79c>] ehci_irq+0x20/0x2a4
[ 4.539481]
[ 4.539481] which lock already depends on the new lock.
[ 4.539481]
[ 4.547655]
[ 4.547655] the existing dependency chain (in reverse order) is:
[ 4.555132]
-> #1 (&(&ehci->lock)->rlock){-.-...}:
[ 4.560117] [<c07a8d9c>] ehci_urb_enqueue+0x74/0xdb0
[ 4.565693] [<c0794864>] usb_hcd_submit_urb+0xac/0x7e0
[ 4.571450] [<c0796de8>] usb_sg_wait+0x4c/0x148
[ 4.576591] [<c07ac49c>] usb_stor_bulk_transfer_sglist.part.2+0x7c/0xd8
[ 4.583816] [<c07ac540>] usb_stor_bulk_srb+0x48/0x50
[ 4.589391] [<c07ac65c>] usb_stor_Bulk_transport+0x114/0x36c
[ 4.595660] [<c07ace84>] usb_stor_invoke_transport+0x20/0x470
[ 4.602016] [<c07ae1c0>] usb_stor_control_thread+0x144/0x220
[ 4.608285] [<c044b478>] kthread+0xe0/0xf8
[ 4.612996] [<c040f758>] ret_from_fork+0x14/0x3c
[ 4.618226]
-> #0 (&(&io->lock)->rlock){-.....}:
[ 4.623038] [<c0938dd0>] _raw_spin_lock+0x38/0x48
[ 4.628355] [<c0796868>] sg_complete+0x20/0x1cc
[ 4.633495] [<c07937fc>] __usb_hcd_giveback_urb+0x98/0x140
[ 4.639591] [<c07a6bcc>] qh_completions+0x368/0x4a8
[ 4.645078] [<c07aa55c>] ehci_work.part.16+0x754/0x888
[ 4.650826] [<c07aaa08>] ehci_irq+0x28c/0x2a4
[ 4.655792] [<c0792c28>] usb_hcd_irq+0x24/0x38
[ 4.660846] [<c048059c>] handle_irq_event_percpu+0xa4/0x59c
[ 4.667030] [<c0480ad0>] handle_irq_event+0x3c/0x5c
[ 4.672518] [<c0483adc>] handle_fasteoi_irq+0xc4/0x1a4
[ 4.678266] [<c047fee4>] __handle_domain_irq+0xa0/0x110
[ 4.684101] [<c04096cc>] axxia_gic_handle_irq+0x26c/0x294
[ 4.690110] [<c04148c4>] __irq_svc+0x44/0x90
[ 4.694990] [<c046d850>] cpu_startup_entry+0xd8/0x410
[ 4.700652] [<c046d850>] cpu_startup_entry+0xd8/0x410
[ 4.706313] [<c0b04cac>] start_kernel+0x3e0/0x3ec
[ 4.711627] [<00408088>] 0x408088 

Fredrik Markstrom give a patch to solve this issue.

I checked the git log and found that all HCD drivers should support
HCD_BH flag since commit 428aac8a81058e2303677a8fbf26670229e51d3a.

The patch is for linux-yocto-4.1 standard/axxia/base


Thanks,
Zhenbo


More information about the linux-yocto mailing list