]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - kernel/up.c
Merge remote-tracking branch 'pci/next'
[karo-tx-linux.git] / kernel / up.c
index 144e57255234659f7a8f684d0fc373ff5ec2a70e..630d72bf7e4173d2c47272ea7ce63012007ab192 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;
 }
 EXPORT_SYMBOL(smp_call_function_single);
 
+int on_each_cpu(smp_call_func_t func, void *info, int wait)
+{
+       unsigned long flags;
+
+       local_irq_save(flags);
+       func(info);
+       local_irq_restore(flags);
+       return 0;
+}
+EXPORT_SYMBOL(on_each_cpu);
+
 /*
  * Note we still need to test the mask even for UP
  * because we actually can get an empty mask from