summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/up.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/up.c b/kernel/up.c
index 144e57255234..b1cf036255f3 100644
--- a/kernel/up.c
+++ b/kernel/up.c
@@ -10,11 +10,13 @@
int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
int wait)
{
+ unsigned long flags;
+
WARN_ON(cpu != 0);
- local_irq_disable();
- (func)(info);
- local_irq_enable();
+ local_irq_save(flags);
+ func(info);
+ local_irq_restore(flags);
return 0;
}