*** DEADLOCK ***
Dong Aisheng
dongas86 at gmail.com
Wed Jan 8 21:14:51 EST 2014
Hi John,
On Thu, Jan 9, 2014 at 6:19 AM, John Tobias <john.tobias.ph at gmail.com> wrote:
> Hi Dong,
>
> I used your patches to fix hardirq-unsafe and didn't see the said
> messages anymore when I repeatedly booting my board.
>
> But, I saw another DEADLOCK (see below) if I enable my wifi.
>
I guess you may miss this one.
http://www.spinics.net/lists/arm-kernel/msg296596.html
Can you apply it and try again?
Regards
Dong Aisheng
> Regards,
>
> john
>
>
> [ 24.554647] =================================
> [ 24.559021] [ INFO: inconsistent lock state ]
> [ 24.563401] 3.13.0-rc1 #47 Tainted: G O
> [ 24.568122] ---------------------------------
> [ 24.572497] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
> [ 24.578528] kworker/u2:1/13 [HC0[0]:SC0[0]:HE1:SE1] takes:
> [ 24.584029] (&(&host->lock)->rlock){?.-...}, at: [<8032d8d4>]
> sdhci_execute_tuning+0x48/0x70c
> [ 24.592776] {IN-HARDIRQ-W} state was registered at:
> [ 24.597669] [<8004d940>] mark_lock+0x1b0/0x784
> [ 24.602339] [<8004f080>] __lock_acquire+0xb74/0x1cd0
> [ 24.607518] [<800509ac>] lock_acquire+0x70/0x84
> [ 24.612262] [<8050d928>] _raw_spin_lock+0x38/0x48
> [ 24.617188] [<8032e754>] sdhci_irq+0x20/0xbe0
> [ 24.621761] [<8005963c>] handle_irq_event_percpu+0x3c/0x1a0
> [ 24.627549] [<800597e4>] handle_irq_event+0x44/0x64
> [ 24.632638] [<8005c214>] handle_fasteoi_irq+0x84/0x14c
> [ 24.637993] [<80058e24>] generic_handle_irq+0x34/0x44
> [ 24.643258] [<8000f8a8>] handle_IRQ+0x40/0x8c
> [ 24.647835] [<80008578>] gic_handle_irq+0x34/0x5c
> [ 24.652752] [<80013204>] __irq_svc+0x44/0x58
> [ 24.657242] [<80251534>] pin_get_from_name+0x58/0x80
> [ 24.662429] [<802536e0>] pinconf_map_to_setting+0x70/0xb0
> [ 24.668050] [<80250cb8>] pinctrl_get+0x238/0x46c
> [ 24.672880] [<80250f20>] devm_pinctrl_get+0x34/0x70
> [ 24.677972] [<802a6610>] pinctrl_bind_pins+0x34/0x200
> [ 24.683245] [<802913d8>] driver_probe_device+0x88/0x390
> [ 24.688691] [<802917c8>] __driver_attach+0x9c/0xa0
> [ 24.693695] [<8028f604>] bus_for_each_dev+0x68/0x9c
> [ 24.698789] [<80290e58>] driver_attach+0x24/0x28
> [ 24.703621] [<80290a58>] bus_add_driver+0x164/0x220
> [ 24.708712] [<80291e54>] driver_register+0x80/0x100
> [ 24.713802] [<802930dc>] __platform_driver_register+0x5c/0x64
> [ 24.719767] [<806bba98>] sdhci_esdhc_imx_driver_init+0x18/0x20
> [ 24.725817] [<80008818>] do_one_initcall+0xe4/0x190
> [ 24.730907] [<806a1c38>] kernel_init_freeable+0x12c/0x1cc
> [ 24.736530] [<80502dc0>] kernel_init+0x10/0x128
> [ 24.741283] [<8000f068>] ret_from_fork+0x14/0x2c
> [ 24.746122] irq event stamp: 45121
> [ 24.749539] hardirqs last enabled at (45121): [<8050dbb8>]
> _raw_spin_unlock_irqrestore+0x38/0x4c
> [ 24.758457] hardirqs last disabled at (45120): [<8050da34>]
> _raw_spin_lock_irqsave+0x24/0x5c
> [ 24.766939] softirqs last enabled at (45112): [<80025264>]
> __do_softirq+0x1c8/0x278
> [ 24.774723] softirqs last disabled at (45101): [<80025700>]
> irq_exit+0xc0/0x108
> [ 24.782072]
> [ 24.782072] other info that might help us debug this:
> [ 24.788620] Possible unsafe locking scenario:
> [ 24.788620]
> [ 24.794556] CPU0
> [ 24.797016] ----
> [ 24.799474] lock(&(&host->lock)->rlock);
> [ 24.803624] <Interrupt>
> [ 24.806255] lock(&(&host->lock)->rlock);
> [ 24.810576]
> [ 24.810576] *** DEADLOCK ***
> [ 24.810576]
> [ 24.816521] 2 locks held by kworker/u2:1/13:
> [ 24.820803] #0: (kmmcd){.+.+.+}, at: [<80036adc>]
> process_one_work+0x124/0x44c
> [ 24.828333] #1: ((&(&host->detect)->work)){+.+.+.}, at:
> [<80036adc>] process_one_work+0x124/0x44c
> [ 24.837503]
> [ 24.837503] stack backtrace:
> [ 24.841889] CPU: 0 PID: 13 Comm: kworker/u2:1 Tainted: G
> O 3.13.0-rc1 #47
> [ 24.849578] Workqueue: kmmcd mmc_rescan
> [ 24.853448] Backtrace:
> [ 24.855958] [<80012444>] (dump_backtrace+0x0/0x110) from
> [<80012714>] (show_stack+0x18/0x1c)
> [ 24.864412] r6:00000000 r5:807c4b24 r4:bf867200 r3:bf867200
> [ 24.870192] [<800126fc>] (show_stack+0x0/0x1c) from [<80507598>]
> (dump_stack+0x24/0x28)
> [ 24.878235] [<80507574>] (dump_stack+0x0/0x28) from [<80505744>]
> (print_usage_bug.part.34+0x2b0/0x2bc)
> [ 24.887578] [<80505494>] (print_usage_bug.part.34+0x0/0x2bc) from
> [<8004d9d4>] (mark_lock+0x244/0x784)
> [ 24.896900] r8:807c4b24 r7:806e1908 r6:bf867200 r5:bf867670 r4:00000002
> [ 24.903739] [<8004d790>] (mark_lock+0x0/0x784) from [<8004eb0c>]
> (__lock_acquire+0x600/0x1cd0)
> [ 24.912383] [<8004e50c>] (__lock_acquire+0x0/0x1cd0) from
> [<800509ac>] (lock_acquire+0x70/0x84)
> [ 24.921113] [<8005093c>] (lock_acquire+0x0/0x84) from [<8050d928>]
> (_raw_spin_lock+0x38/0x48)
> [ 24.929652] r7:00000004 r6:00000005 r5:bfbec000 r4:bf9e6c70
> [ 24.935439] [<8050d8f0>] (_raw_spin_lock+0x0/0x48) from
> [<8032d8d4>] (sdhci_execute_tuning+0x48/0x70c)
> [ 24.944761] r4:bf9e6800
> [ 24.947349] [<8032d88c>] (sdhci_execute_tuning+0x0/0x70c) from
> [<80322f50>] (mmc_sdio_init_card+0xa3c/0xadc)
> [ 24.957207] [<80322514>] (mmc_sdio_init_card+0x0/0xadc) from
> [<80323310>] (mmc_attach_sdio+0x80/0x368)
> [ 24.966549] [<80323290>] (mmc_attach_sdio+0x0/0x368) from
> [<8031b968>] (mmc_rescan+0x26c/0x2f0)
> [ 24.975283] [<8031b6fc>] (mmc_rescan+0x0/0x2f0) from [<80036b58>]
> (process_one_work+0x1a0/0x44c)
> [ 24.984082] r8:00000000 r7:bf94fea8 r6:bf84e800 r5:bf9e6af8 r4:bf914d80
> r3:8031b6fc
> [ 24.992078] [<800369b8>] (process_one_work+0x0/0x44c) from
> [<80037a9c>] (worker_thread+0x124/0x3f8)
> [ 25.001161] [<80037978>] (worker_thread+0x0/0x3f8) from
> [<8003d6cc>] (kthread+0xdc/0xf0)
> [ 25.009284] [<8003d5f0>] (kthread+0x0/0xf0) from [<8000f068>]
> (ret_from_fork+0x14/0x2c)
> [ 25.017302] r7:00000000 r6:00000000 r5:8003d5f0 r4:bf92dd00
> [ 25.065548] mmc1: new ultra high speed SDR50 SDIO card at address 0001
> [ 25.085698] vendor=0x02DF device=0x9129 class=0 function=1
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list