X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fsoftirq.c;h=ec8fed42a86f5db1001701c2da36c3287cbcaa36;hb=946f2ee5c7312e8acac4f3ab6629e7e2d36a3646;hp=ad3295cdded55032f248bf53dc6b908c56702581;hpb=407cf84f956ee4b52da5508d5357b8ae212ff77c;p=linux-2.6 diff --git a/kernel/softirq.c b/kernel/softirq.c index ad3295cdde..ec8fed42a8 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -16,6 +16,7 @@ #include #include #include +#include #include /* @@ -495,3 +496,22 @@ __init int spawn_ksoftirqd(void) register_cpu_notifier(&cpu_nfb); return 0; } + +#ifdef CONFIG_SMP +/* + * Call a function on all processors + */ +int on_each_cpu(void (*func) (void *info), void *info, int retry, int wait) +{ + int ret = 0; + + preempt_disable(); + ret = smp_call_function(func, info, retry, wait); + local_irq_disable(); + func(info); + local_irq_enable(); + preempt_enable(); + return ret; +} +EXPORT_SYMBOL(on_each_cpu); +#endif