diff options
Diffstat (limited to 'arch/um/kernel/smp.c')
-rw-r--r-- | arch/um/kernel/smp.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 36d89cf8d20b..e1062ec36d40 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
@@ -21,7 +21,6 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | |||
21 | #include "asm/smp.h" | 21 | #include "asm/smp.h" |
22 | #include "asm/processor.h" | 22 | #include "asm/processor.h" |
23 | #include "asm/spinlock.h" | 23 | #include "asm/spinlock.h" |
24 | #include "kern_util.h" | ||
25 | #include "kern.h" | 24 | #include "kern.h" |
26 | #include "irq_user.h" | 25 | #include "irq_user.h" |
27 | #include "os.h" | 26 | #include "os.h" |
@@ -61,7 +60,7 @@ void smp_send_stop(void) | |||
61 | continue; | 60 | continue; |
62 | os_write_file(cpu_data[i].ipi_pipe[1], "S", 1); | 61 | os_write_file(cpu_data[i].ipi_pipe[1], "S", 1); |
63 | } | 62 | } |
64 | printk(KERN_INFO "done\n"); | 63 | printk(KERN_CONT "done\n"); |
65 | } | 64 | } |
66 | 65 | ||
67 | static cpumask_t smp_commenced_mask = CPU_MASK_NONE; | 66 | static cpumask_t smp_commenced_mask = CPU_MASK_NONE; |
@@ -75,8 +74,7 @@ static int idle_proc(void *cpup) | |||
75 | if (err < 0) | 74 | if (err < 0) |
76 | panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err); | 75 | panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err); |
77 | 76 | ||
78 | os_set_fd_async(cpu_data[cpu].ipi_pipe[0], | 77 | os_set_fd_async(cpu_data[cpu].ipi_pipe[0]); |
79 | current->thread.mode.tt.extern_pid); | ||
80 | 78 | ||
81 | wmb(); | 79 | wmb(); |
82 | if (cpu_test_and_set(cpu, cpu_callin_map)) { | 80 | if (cpu_test_and_set(cpu, cpu_callin_map)) { |
@@ -129,8 +127,7 @@ void smp_prepare_cpus(unsigned int maxcpus) | |||
129 | if (err < 0) | 127 | if (err < 0) |
130 | panic("CPU#0 failed to create IPI pipe, errno = %d", -err); | 128 | panic("CPU#0 failed to create IPI pipe, errno = %d", -err); |
131 | 129 | ||
132 | os_set_fd_async(cpu_data[me].ipi_pipe[0], | 130 | os_set_fd_async(cpu_data[me].ipi_pipe[0]); |
133 | current->thread.mode.tt.extern_pid); | ||
134 | 131 | ||
135 | for (cpu = 1; cpu < ncpus; cpu++) { | 132 | for (cpu = 1; cpu < ncpus; cpu++) { |
136 | printk(KERN_INFO "Booting processor %d...\n", cpu); | 133 | printk(KERN_INFO "Booting processor %d...\n", cpu); |
@@ -143,9 +140,8 @@ void smp_prepare_cpus(unsigned int maxcpus) | |||
143 | while (waittime-- && !cpu_isset(cpu, cpu_callin_map)) | 140 | while (waittime-- && !cpu_isset(cpu, cpu_callin_map)) |
144 | cpu_relax(); | 141 | cpu_relax(); |
145 | 142 | ||
146 | if (cpu_isset(cpu, cpu_callin_map)) | 143 | printk(KERN_INFO "%s\n", |
147 | printk(KERN_INFO "done\n"); | 144 | cpu_isset(cpu, cpu_calling_map) ? "done" : "failed"); |
148 | else printk(KERN_INFO "failed\n"); | ||
149 | } | 145 | } |
150 | } | 146 | } |
151 | 147 | ||