diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2013-09-11 17:19:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 18:56:19 -0400 |
commit | 3b8967d713d7426e9dd107d065208b84adface91 (patch) | |
tree | f1df2b00ef08ac92636fdc4e7bc273963deec433 /include/linux | |
parent | e831cbfc1ad843b5542cc45f777e1a00b73c0685 (diff) |
include/linux/smp.h:on_each_cpu(): switch back to a C function
Revert commit c846ef7deba2 ("include/linux/smp.h:on_each_cpu(): switch
back to a macro"). It turns out that the problematic linux/irqflags.h
include was fixed within ia64 and mn10300.
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: David Daney <david.daney@cavium.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/smp.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h index c181399f2c20..c8488763277f 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
12 | #include <linux/cpumask.h> | 12 | #include <linux/cpumask.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/irqflags.h> | ||
14 | 15 | ||
15 | extern void cpu_idle(void); | 16 | extern void cpu_idle(void); |
16 | 17 | ||
@@ -139,14 +140,17 @@ static inline int up_smp_call_function(smp_call_func_t func, void *info) | |||
139 | } | 140 | } |
140 | #define smp_call_function(func, info, wait) \ | 141 | #define smp_call_function(func, info, wait) \ |
141 | (up_smp_call_function(func, info)) | 142 | (up_smp_call_function(func, info)) |
142 | #define on_each_cpu(func, info, wait) \ | 143 | |
143 | ({ \ | 144 | static inline int on_each_cpu(smp_call_func_t func, void *info, int wait) |
144 | unsigned long __flags; \ | 145 | { |
145 | local_irq_save(__flags); \ | 146 | unsigned long flags; |
146 | func(info); \ | 147 | |
147 | local_irq_restore(__flags); \ | 148 | local_irq_save(flags); |
148 | 0; \ | 149 | func(info); |
149 | }) | 150 | local_irq_restore(flags); |
151 | return 0; | ||
152 | } | ||
153 | |||
150 | /* | 154 | /* |
151 | * Note we still need to test the mask even for UP | 155 | * Note we still need to test the mask even for UP |
152 | * because we actually can get an empty mask from | 156 | * because we actually can get an empty mask from |