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

Bruce Ashfield bruce.ashfield at windriver.com
Tue May 24 08:55:16 PDT 2016


On 2016-05-24 3:05 AM, Zhenbo Gao wrote:
> 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

merged .. and I've also put it on the preempt-rt variant of the BSP.

Bruce

>
>
> Thanks,
> Zhenbo
>



More information about the linux-yocto mailing list