Loading kernel/softirq.c +1 −19 Original line number Diff line number Diff line Loading @@ -84,21 +84,6 @@ static void wakeup_softirqd(void) wake_up_process(tsk); } /* * If ksoftirqd is scheduled, we do not want to process pending softirqs * right now. Let ksoftirqd handle this at its own rate, to get fairness, * unless we're doing some of the synchronous softirqs. */ #define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ)) static bool ksoftirqd_running(unsigned long pending) { struct task_struct *tsk = __this_cpu_read(ksoftirqd); if (pending & SOFTIRQ_NOW_MASK) return false; return tsk && (tsk->state == TASK_RUNNING); } /* * preempt_count and SOFTIRQ_OFFSET usage: * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving Loading Loading @@ -354,7 +339,7 @@ asmlinkage __visible void do_softirq(void) pending = local_softirq_pending(); if (pending && !ksoftirqd_running(pending)) if (pending) do_softirq_own_stack(); local_irq_restore(flags); Loading @@ -381,9 +366,6 @@ void irq_enter(void) static inline void invoke_softirq(void) { if (ksoftirqd_running(local_softirq_pending())) return; if (!force_irqthreads) { #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK /* Loading Loading
kernel/softirq.c +1 −19 Original line number Diff line number Diff line Loading @@ -84,21 +84,6 @@ static void wakeup_softirqd(void) wake_up_process(tsk); } /* * If ksoftirqd is scheduled, we do not want to process pending softirqs * right now. Let ksoftirqd handle this at its own rate, to get fairness, * unless we're doing some of the synchronous softirqs. */ #define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ)) static bool ksoftirqd_running(unsigned long pending) { struct task_struct *tsk = __this_cpu_read(ksoftirqd); if (pending & SOFTIRQ_NOW_MASK) return false; return tsk && (tsk->state == TASK_RUNNING); } /* * preempt_count and SOFTIRQ_OFFSET usage: * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving Loading Loading @@ -354,7 +339,7 @@ asmlinkage __visible void do_softirq(void) pending = local_softirq_pending(); if (pending && !ksoftirqd_running(pending)) if (pending) do_softirq_own_stack(); local_irq_restore(flags); Loading @@ -381,9 +366,6 @@ void irq_enter(void) static inline void invoke_softirq(void) { if (ksoftirqd_running(local_softirq_pending())) return; if (!force_irqthreads) { #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK /* Loading