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

Commit 35b61edb authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86: Use tick broadcast expired check



Avoid going back into deep idle if the tick broadcast IPI is about to
fire.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Arjan van de Veen <arjan@infradead.org>
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/20130306111537.702278273@linutronix.de
parent 80bbe9f2
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -336,6 +336,18 @@ void cpu_idle(void)
			local_touch_nmi();
			local_irq_disable();

			/*
			 * We detected in the wakeup path that the
			 * tick broadcast device expired for us, but
			 * we raced with the other CPU and came back
			 * here before it was able to fire the IPI.
			 * No point in going idle.
			 */
			if (tick_check_broadcast_expired()) {
				local_irq_enable();
				continue;
			}

			enter_idle();

			/* Don't trace irqs off for idle */