vserver 1.9.5.x5
[linux-2.6.git] / arch / um / kernel / smp.c
index b5e66b2..e916391 100644 (file)
@@ -216,7 +216,7 @@ int hard_smp_processor_id(void)
        return(pid_to_processor_id(os_getpid()));
 }
 
-static spinlock_t call_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(call_lock);
 static atomic_t scf_started;
 static atomic_t scf_finished;
 static void (*func)(void *info);
@@ -247,10 +247,8 @@ int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic,
        func = _func;
        info = _info;
 
-       for (i=0;i<NR_CPUS;i++)
-               if((i != current_thread->cpu) &&
-                  cpu_isset(i, cpu_online_map))
-                       os_write_file(cpu_data[i].ipi_pipe[1], "C", 1);
+       for_each_online_cpu(i)
+               os_write_file(cpu_data[i].ipi_pipe[1], "C", 1);
 
        while (atomic_read(&scf_started) != cpus)
                barrier();