Skip to content
Commit 57ebd4d4 authored by Ruiqiang Hao's avatar Ruiqiang Hao Committed by Bruce Ashfield
Browse files

mmc: cavium-thunderx: Drop the IRQF_NO_THREAD constraint



The IRQF_NO_THREAD is added by a Marvell SDK12 patch commit 65549eba
("mmc: octeontx2: fix swiotlb buffer is full") in order to get back some
of the performance loss. But in some cases (such as rt kernel), we need
the capability to thread irq handler. Otherwise we would get following
warnings because the normal spin lock is used in the irq handler. So drop
this constraint.

BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/0
preempt_count: 10001, expected: 0
RCU nest depth: 0, expected: 0
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W          6.6.38-rt31-yocto-preempt-rt+ #4
Hardware name: Marvell OcteonTX CN96XX board (DT)
Call trace:
 dump_backtrace+0x98/0xf8
 show_stack+0x20/0x38
 dump_stack_lvl+0x48/0x60
 dump_stack+0x18/0x28
 __might_resched+0x120/0x188
 rt_spin_lock+0x38/0xc8
 cvm_mmc_interrupt+0x250/0x5b8
 __handle_irq_event_percpu+0x60/0x230
 handle_irq_event+0x6c/0xf8
 handle_fasteoi_irq+0xa8/0x1d8
 generic_handle_domain_irq+0x34/0x58
 gic_handle_irq+0x5c/0x16c
 call_on_irq_stack+0x24/0x30
 do_interrupt_handler+0x88/0x98
 el1_interrupt+0x34/0x68
 el1h_64_irq_handler+0x18/0x28
 el1h_64_irq+0x64/0x68
 default_idle_call+0x5c/0x170
 do_idle+0x1cc/0x228
 cpu_startup_entry+0x40/0x50
 rest_init+0xec/0xf8
 arch_call_rest_init+0x18/0x20
 start_kernel+0x52c/0x690
 __primary_switched+0xb4/0xc8

Signed-off-by: default avatarRuiqiang Hao <Ruiqiang.Hao@windriver.com>
Signed-off-by: default avatarBruce Ashfield <bruce.ashfield@gmail.com>
parent d5d3e0c5
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment