Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee5f80a9 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Thomas Gleixner
Browse files

irq: call __irq_enter() before calling the tick_idle_check



Impact: avoid spurious ksoftirqd wakeups

The tick idle check which is called from irq_enter() was run before
the call to __irq_enter() which did not set the in_interrupt() bits in
preempt_count. That way the raise of a softirq woke up softirqd for
nothing as the softirq was handled on return from interrupt.

Call __irq_enter() before calling into the tick idle check code.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 5ceb1a04
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -269,9 +269,10 @@ void irq_enter(void)
{
{
	int cpu = smp_processor_id();
	int cpu = smp_processor_id();


	if (idle_cpu(cpu) && !in_interrupt())
	if (idle_cpu(cpu) && !in_interrupt()) {
		__irq_enter();
		tick_check_idle(cpu);
		tick_check_idle(cpu);

	} else
		__irq_enter();
		__irq_enter();
}
}