diff options
author | Clark Wang <xiaoning.wang@nxp.com> | 2019-06-28 17:10:36 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2021-11-02 17:00:46 +0800 |
commit | f5d04860f13493c5bc343f4cc465086c77d1cd60 (patch) | |
tree | 66d3c1f11b461482d6c74a424163fe11b68466d2 /Documentation/devicetree/bindings/mlb | |
parent | a92c80195256e4ae93c5b56c0d2e6d0982f18b42 (diff) |
mxc: mlb: fix interrupt rw lock dead lock
MLB has multiple lock calls rings, so this can be called from interrupt
calls at the same time resulting in:
[ 73.688839] WARNING: inconsistent lock state
[ 73.693116] 5.2.0-rc3-next-20190607-20092-ge32edc4b91df-dirty #38 Not tainted
[ 73.700256] --------------------------------
[ 73.704533] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-R} usage.
[ 73.710546] mxc_mlb_test.ou/612 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 73.716386] 554a05da (mlb_devinfo[1].tx_rbuf.rb_lock){-?--}, at: mxc_mlb150_ioctl+0x6a8/0x9a8
[ 73.724937] {IN-HARDIRQ-W} state was registered at:
[ 73.729827] _raw_write_lock+0x28/0x38
[ 73.733669] mlb_tx_isr+0x54/0xf8
[ 73.737078] mlb_ahb_isr+0x98/0x124
[ 73.740668] __handle_irq_event_percpu+0x48/0x360
[ 73.745467] handle_irq_event_percpu+0x28/0x7c
[ 73.750002] handle_irq_event+0x38/0x5c
[ 73.753934] handle_fasteoi_irq+0xc0/0x17c
[ 73.758125] generic_handle_irq+0x20/0x34
[ 73.762228] __handle_domain_irq+0x64/0xe0
[ 73.766422] gic_handle_irq+0x4c/0xa8
[ 73.770179] __irq_svc+0x70/0x98
[ 73.773506] cpuidle_enter_state+0x164/0x574
[ 73.777869] cpuidle_enter_state+0x164/0x574
[ 73.782232] cpuidle_enter+0x28/0x38
[ 73.785905] do_idle+0x220/0x2c0
[ 73.789226] cpu_startup_entry+0x18/0x20
[ 73.793247] start_kernel+0x3f4/0x4a0
Fix this by always using irq save rw locks in trans_complete_check.
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Diffstat (limited to 'Documentation/devicetree/bindings/mlb')
0 files changed, 0 insertions, 0 deletions