2.6.32.28 update
/kernel/timer.c
blob:39c3239ead932c00e12e4d641c352e94e38ba7fb -> blob:d0bb500102ce17cdafc32a946d241a404fb105be
--- kernel/timer.c
+++ kernel/timer.c
@@ -1173,6 +1173,12 @@ unsigned long get_next_timer_interrupt(u
struct tvec_base *base = __get_cpu_var(tvec_bases);
unsigned long expires;
+ /*
+ * Pretend that there is no timer pending if the cpu is offline.
+ * Possible pending timers will be migrated later to an active cpu.
+ */
+ if (cpu_is_offline(smp_processor_id()))
+ return now + NEXT_TIMER_MAX_DELTA;
spin_lock(&base->lock);
if (time_before_eq(base->next_timer, base->timer_jiffies))
base->next_timer = __next_timer_interrupt(base);