From ece82f96cadaf1a1cc7d9a95f626f9e52cfda76e Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Wed, 1 Dec 2010 10:11:09 +0100 Subject: [PATCH] --- yaml --- r: 223427 b: refs/heads/master c: dbd87b5af055a0cc9bba17795c9a2b0d17795389 h: refs/heads/master i: 223425: ba6cc338eb545c3a16904d6442a327deee5b7c90 223423: 31c8376b6976d6e6af8d4aa01dfaf8fd86502976 v: v3 --- [refs] | 2 +- trunk/kernel/timer.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index dfccb3e73768..88fff37dfa57 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f26f9aff6aaf67e9a430d16c266f91b13a5bff64 +refs/heads/master: dbd87b5af055a0cc9bba17795c9a2b0d17795389 diff --git a/trunk/kernel/timer.c b/trunk/kernel/timer.c index 7bd715fda974..353b9227c2ec 100644 --- a/trunk/kernel/timer.c +++ b/trunk/kernel/timer.c @@ -1252,6 +1252,12 @@ unsigned long get_next_timer_interrupt(unsigned long now) 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);