diff options
author | Patrick McHardy <kaber@trash.net> | 2011-01-19 23:51:37 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2011-01-19 23:51:37 +0100 |
commit | 14f0290ba44de6ed435fea24bba26e7868421c66 (patch) | |
tree | 449d32e4848007e3edbcab14fa8e09fdc66608ed /kernel/smp.c | |
parent | f5c88f56b35599ab9ff2d3398e0153e4cd4a4c82 (diff) | |
parent | a5db219f4cf9f67995eabd53b81a1232c82f5852 (diff) | |
download | kernel_samsung_smdk4412-14f0290ba44de6ed435fea24bba26e7868421c66.zip kernel_samsung_smdk4412-14f0290ba44de6ed435fea24bba26e7868421c66.tar.gz kernel_samsung_smdk4412-14f0290ba44de6ed435fea24bba26e7868421c66.tar.bz2 |
Merge branch 'master' of /repos/git/net-next-2.6
Diffstat (limited to 'kernel/smp.c')
-rw-r--r-- | kernel/smp.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/smp.c b/kernel/smp.c index 12ed8b0..4ec30e0 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -13,6 +13,7 @@ #include <linux/smp.h> #include <linux/cpu.h> +#ifdef CONFIG_USE_GENERIC_SMP_HELPERS static struct { struct list_head queue; raw_spinlock_t lock; @@ -529,3 +530,21 @@ void ipi_call_unlock_irq(void) { raw_spin_unlock_irq(&call_function.lock); } +#endif /* USE_GENERIC_SMP_HELPERS */ + +/* + * Call a function on all processors + */ +int on_each_cpu(void (*func) (void *info), void *info, int wait) +{ + int ret = 0; + + preempt_disable(); + ret = smp_call_function(func, info, wait); + local_irq_disable(); + func(info); + local_irq_enable(); + preempt_enable(); + return ret; +} +EXPORT_SYMBOL(on_each_cpu); |