up.c: use local_irq_{save,restore}() in smp_call_function_single.
authorDavid Daney <david.daney@cavium.com>
Wed, 11 Sep 2013 21:23:25 +0000 (14:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Sep 2013 22:58:25 +0000 (15:58 -0700)
The SMP version of this function doesn't unconditionally enable irqs, so
neither should this !SMP version.  There are no know problems caused by
this, but we make the change for consistency's sake.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/up.c

index 144e57255234659f7a8f684d0fc373ff5ec2a70e..b1cf036255f3fc241809af9bce0e0c8dd1bae4ca 100644 (file)
 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;
 }