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: Ruiqiang Hao <Ruiqiang.Hao@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Please register or sign in to comment