]> Pileus Git - ~andy/linux/blobdiff - kernel/smp.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
[~andy/linux] / kernel / smp.c
index f77b75c027ad0f37048616bc90b564a436cff02f..462c785ca1eee80dea958541edf19786259c88e6 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/module.h>
 #include <linux/percpu.h>
 #include <linux/rcupdate.h>
+#include <linux/rculist.h>
 #include <linux/smp.h>
 
 static DEFINE_PER_CPU(struct call_single_queue, call_single_queue);
@@ -195,7 +196,6 @@ void generic_smp_call_function_single_interrupt(void)
  * smp_call_function_single - Run a function on a specific CPU
  * @func: The function to run. This must be fast and non-blocking.
  * @info: An arbitrary pointer to pass to the function.
- * @retry: Unused
  * @wait: If true, wait until function has completed on other CPUs.
  *
  * Returns 0 on success, else a negative status code. Note that @wait
@@ -203,7 +203,7 @@ void generic_smp_call_function_single_interrupt(void)
  * we fall back to on-stack allocation.
  */
 int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
-                            int retry, int wait)
+                            int wait)
 {
        struct call_single_data d;
        unsigned long flags;
@@ -301,7 +301,7 @@ int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info,
                return 0;
        else if (num_cpus == 1) {
                cpu = first_cpu(mask);
-               return smp_call_function_single(cpu, func, info, 0, wait);
+               return smp_call_function_single(cpu, func, info, wait);
        }
 
        if (!wait) {
@@ -312,6 +312,7 @@ int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info,
        if (!data) {
                data = &d;
                data->csd.flags = CSD_FLAG_WAIT;
+               wait = 1;
        }
 
        spin_lock_init(&data->lock);
@@ -339,7 +340,6 @@ EXPORT_SYMBOL(smp_call_function_mask);
  * smp_call_function(): Run a function on all other CPUs.
  * @func: The function to run. This must be fast and non-blocking.
  * @info: An arbitrary pointer to pass to the function.
- * @natomic: Unused
  * @wait: If true, wait (atomically) until function has completed on other CPUs.
  *
  * Returns 0 on success, else a negative status code.
@@ -351,7 +351,7 @@ EXPORT_SYMBOL(smp_call_function_mask);
  * You must not call this function with disabled interrupts or from a
  * hardware interrupt handler or from a bottom half handler.
  */
-int smp_call_function(void (*func)(void *), void *info, int natomic, int wait)
+int smp_call_function(void (*func)(void *), void *info, int wait)
 {
        int ret;