diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-03-27 04:14:30 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:44:37 -0500 |
commit | 63ae2a94d98dd9d94163918539ec80df33f44a69 (patch) | |
tree | ebb7d6d0919fd5a8d3bac6c6a726f2f51f53f779 /arch/um/kernel/smp.c | |
parent | d9f8b62a6b033fe7226d7c2b2efdd164ca1aa07c (diff) |
[PATCH] uml: move libc-dependent irq code to os-Linux
The serial UML OS-abstraction layer patch (um/kernel dir).
This moves all systemcalls from irq_user.c file under os-Linux dir
Signed-off-by: Gennady Sharapov <Gennady.V.Sharapov@intel.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/kernel/smp.c')
-rw-r--r-- | arch/um/kernel/smp.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 72113b0a96e..c8d8d0ac1a7 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com) | 2 | * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com) |
3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
4 | */ | 4 | */ |
@@ -77,9 +77,9 @@ static int idle_proc(void *cpup) | |||
77 | if(err < 0) | 77 | if(err < 0) |
78 | panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err); | 78 | panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err); |
79 | 79 | ||
80 | activate_ipi(cpu_data[cpu].ipi_pipe[0], | 80 | os_set_fd_async(cpu_data[cpu].ipi_pipe[0], |
81 | current->thread.mode.tt.extern_pid); | 81 | current->thread.mode.tt.extern_pid); |
82 | 82 | ||
83 | wmb(); | 83 | wmb(); |
84 | if (cpu_test_and_set(cpu, cpu_callin_map)) { | 84 | if (cpu_test_and_set(cpu, cpu_callin_map)) { |
85 | printk("huh, CPU#%d already present??\n", cpu); | 85 | printk("huh, CPU#%d already present??\n", cpu); |
@@ -106,7 +106,7 @@ static struct task_struct *idle_thread(int cpu) | |||
106 | panic("copy_process failed in idle_thread, error = %ld", | 106 | panic("copy_process failed in idle_thread, error = %ld", |
107 | PTR_ERR(new_task)); | 107 | PTR_ERR(new_task)); |
108 | 108 | ||
109 | cpu_tasks[cpu] = ((struct cpu_task) | 109 | cpu_tasks[cpu] = ((struct cpu_task) |
110 | { .pid = new_task->thread.mode.tt.extern_pid, | 110 | { .pid = new_task->thread.mode.tt.extern_pid, |
111 | .task = new_task } ); | 111 | .task = new_task } ); |
112 | idle_threads[cpu] = new_task; | 112 | idle_threads[cpu] = new_task; |
@@ -134,12 +134,12 @@ void smp_prepare_cpus(unsigned int maxcpus) | |||
134 | if(err < 0) | 134 | if(err < 0) |
135 | panic("CPU#0 failed to create IPI pipe, errno = %d", -err); | 135 | panic("CPU#0 failed to create IPI pipe, errno = %d", -err); |
136 | 136 | ||
137 | activate_ipi(cpu_data[me].ipi_pipe[0], | 137 | os_set_fd_async(cpu_data[me].ipi_pipe[0], |
138 | current->thread.mode.tt.extern_pid); | 138 | current->thread.mode.tt.extern_pid); |
139 | 139 | ||
140 | for(cpu = 1; cpu < ncpus; cpu++){ | 140 | for(cpu = 1; cpu < ncpus; cpu++){ |
141 | printk("Booting processor %d...\n", cpu); | 141 | printk("Booting processor %d...\n", cpu); |
142 | 142 | ||
143 | idle = idle_thread(cpu); | 143 | idle = idle_thread(cpu); |
144 | 144 | ||
145 | init_idle(idle, cpu); | 145 | init_idle(idle, cpu); |
@@ -223,7 +223,7 @@ void smp_call_function_slave(int cpu) | |||
223 | atomic_inc(&scf_finished); | 223 | atomic_inc(&scf_finished); |
224 | } | 224 | } |
225 | 225 | ||
226 | int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, | 226 | int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, |
227 | int wait) | 227 | int wait) |
228 | { | 228 | { |
229 | int cpus = num_online_cpus() - 1; | 229 | int cpus = num_online_cpus() - 1; |