From cf4ce59b3b70238352c7f1729f0f7223214828ad Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 20 Sep 2024 01:46:19 +0000 Subject: [PATCH] rtl88x2CE_WiFi_linux add concurrent mode --- kernel/kernel/irq/handle.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/kernel/kernel/irq/handle.c b/kernel/kernel/irq/handle.c index 06a80bb..8806444 100644 --- a/kernel/kernel/irq/handle.c +++ b/kernel/kernel/irq/handle.c @@ -145,11 +145,18 @@ for_each_action_of_desc(desc, action) { irqreturn_t res; + /* + * If this IRQ would be threaded under force_irqthreads, mark it so. + */ + if (irq_settings_can_thread(desc) && + !(action->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT))) + lockdep_hardirq_threaded(); + trace_irq_handler_entry(irq, action); res = action->handler(irq, action->dev_id); trace_irq_handler_exit(irq, action, res); - if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pF enabled interrupts\n", + if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pS enabled interrupts\n", irq, action->handler)) local_irq_disable(); @@ -166,7 +173,7 @@ __irq_wake_thread(desc, action); - /* Fall through to add to randomness */ + fallthrough; /* to add to randomness */ case IRQ_HANDLED: *flags |= action->flags; break; @@ -185,16 +192,10 @@ { irqreturn_t retval; unsigned int flags = 0; - struct pt_regs *regs = get_irq_regs(); - u64 ip = regs ? instruction_pointer(regs) : 0; retval = __handle_irq_event_percpu(desc, &flags); -#ifdef CONFIG_PREEMPT_RT_FULL - desc->random_ip = ip; -#else - add_interrupt_randomness(desc->irq_data.irq, flags, ip); -#endif + add_interrupt_randomness(desc->irq_data.irq); if (!noirqdebug) note_interrupt(desc, retval); -- Gitblit v1.6.2