fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / um / kernel / smp.c
index 72113b0..759b070 100644 (file)
@@ -1,9 +1,8 @@
-/* 
+/*
  * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
  * Licensed under the GPL
  */
 
-#include "linux/config.h"
 #include "linux/percpu.h"
 #include "asm/pgalloc.h"
 #include "asm/tlb.h"
@@ -77,9 +76,9 @@ static int idle_proc(void *cpup)
        if(err < 0)
                panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err);
 
-       activate_ipi(cpu_data[cpu].ipi_pipe[0], 
+       os_set_fd_async(cpu_data[cpu].ipi_pipe[0],
                     current->thread.mode.tt.extern_pid);
+
        wmb();
        if (cpu_test_and_set(cpu, cpu_callin_map)) {
                printk("huh, CPU#%d already present??\n", cpu);
@@ -106,7 +105,7 @@ static struct task_struct *idle_thread(int cpu)
                panic("copy_process failed in idle_thread, error = %ld",
                      PTR_ERR(new_task));
 
-       cpu_tasks[cpu] = ((struct cpu_task) 
+       cpu_tasks[cpu] = ((struct cpu_task)
                          { .pid =      new_task->thread.mode.tt.extern_pid,
                            .task =     new_task } );
        idle_threads[cpu] = new_task;
@@ -134,16 +133,15 @@ void smp_prepare_cpus(unsigned int maxcpus)
        if(err < 0)
                panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
 
-       activate_ipi(cpu_data[me].ipi_pipe[0],
+       os_set_fd_async(cpu_data[me].ipi_pipe[0],
                     current->thread.mode.tt.extern_pid);
 
        for(cpu = 1; cpu < ncpus; cpu++){
                printk("Booting processor %d...\n", cpu);
-               
+
                idle = idle_thread(cpu);
 
                init_idle(idle, cpu);
-               unhash_process(idle);
 
                waittime = 200000000;
                while (waittime-- && !cpu_isset(cpu, cpu_callin_map))
@@ -223,7 +221,7 @@ void smp_call_function_slave(int cpu)
        atomic_inc(&scf_finished);
 }
 
-int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, 
+int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic,
                      int wait)
 {
        int cpus = num_online_cpus() - 1;