aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/time/tick-broadcast.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
index fc3fc79b3d59..fab9dd8bbd6b 100644
--- a/kernel/time/tick-broadcast.c
+++ b/kernel/time/tick-broadcast.c
@@ -274,21 +274,12 @@ out:
274 */ 274 */
275void tick_broadcast_on_off(unsigned long reason, int *oncpu) 275void tick_broadcast_on_off(unsigned long reason, int *oncpu)
276{ 276{
277 int cpu = get_cpu(); 277 if (!cpu_isset(*oncpu, cpu_online_map))
278
279 if (!cpu_isset(*oncpu, cpu_online_map)) {
280 printk(KERN_ERR "tick-braodcast: ignoring broadcast for " 278 printk(KERN_ERR "tick-braodcast: ignoring broadcast for "
281 "offline CPU #%d\n", *oncpu); 279 "offline CPU #%d\n", *oncpu);
282 } else { 280 else
283 281 smp_call_function_single(*oncpu, tick_do_broadcast_on_off,
284 if (cpu == *oncpu) 282 &reason, 1, 1);
285 tick_do_broadcast_on_off(&reason);
286 else
287 smp_call_function_single(*oncpu,
288 tick_do_broadcast_on_off,
289 &reason, 1, 1);
290 }
291 put_cpu();
292} 283}
293 284
294/* 285/*