diff options
Diffstat (limited to 'include/linux/smp.h')
-rw-r--r-- | include/linux/smp.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h index e6564c1dc552..c181399f2c20 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -139,11 +139,12 @@ static inline int up_smp_call_function(smp_call_func_t func, void *info) } #define smp_call_function(func, info, wait) \ (up_smp_call_function(func, info)) -#define on_each_cpu(func,info,wait) \ +#define on_each_cpu(func, info, wait) \ ({ \ - local_irq_disable(); \ + unsigned long __flags; \ + local_irq_save(__flags); \ func(info); \ - local_irq_enable(); \ + local_irq_restore(__flags); \ 0; \ }) /* |