From: Avi Kivity smp_call_function_single() now knows how to call the function on the current cpu. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Avi Kivity Signed-off-by: Andrew Morton --- kernel/time/tick-broadcast.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff -puN kernel/time/tick-broadcast.c~time-simplify-smp_call_function_single-call-sequence kernel/time/tick-broadcast.c --- a/kernel/time/tick-broadcast.c~time-simplify-smp_call_function_single-call-sequence +++ a/kernel/time/tick-broadcast.c @@ -259,21 +259,12 @@ out: */ void tick_broadcast_on_off(unsigned long reason, int *oncpu) { - int cpu = get_cpu(); - - if (!cpu_isset(*oncpu, cpu_online_map)) { + if (!cpu_isset(*oncpu, cpu_online_map)) printk(KERN_ERR "tick-braodcast: ignoring broadcast for " "offline CPU #%d\n", *oncpu); - } else { - - if (cpu == *oncpu) - tick_do_broadcast_on_off(&reason); - else - smp_call_function_single(*oncpu, - tick_do_broadcast_on_off, - &reason, 1, 1); - } - put_cpu(); + else + smp_call_function_single(*oncpu, tick_do_broadcast_on_off, + &reason, 1, 1); } /* _