diff options
author | Avi Kivity <avi@qumranet.com> | 2007-10-17 02:26:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-17 11:42:48 -0400 |
commit | bf020cb7b3918e186309db21d75cb91ebafc9d6f (patch) | |
tree | 7a03b7a566ce3f3119812e092b72e3c65fc8b91a /kernel/time | |
parent | a9022e9cb9e919e31d5bc15fcef5c7186740645e (diff) |
time: simplify smp_call_function_single() call sequence
smp_call_function_single() now knows how to call the function on the
current cpu.
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/tick-broadcast.c | 17 |
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 | */ |
275 | void tick_broadcast_on_off(unsigned long reason, int *oncpu) | 275 | void 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 | /* |