diff options
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r-- | arch/mips/kernel/smp.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 7b59cfb7e602..8bf88faf5afd 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -163,8 +163,10 @@ static void stop_this_cpu(void *dummy) | |||
163 | * Remove this CPU: | 163 | * Remove this CPU: |
164 | */ | 164 | */ |
165 | cpu_clear(smp_processor_id(), cpu_online_map); | 165 | cpu_clear(smp_processor_id(), cpu_online_map); |
166 | local_irq_enable(); /* May need to service _machine_restart IPI */ | 166 | for (;;) { |
167 | for (;;); /* Wait if available. */ | 167 | if (cpu_wait) |
168 | (*cpu_wait)(); /* Wait if available. */ | ||
169 | } | ||
168 | } | 170 | } |
169 | 171 | ||
170 | void smp_send_stop(void) | 172 | void smp_send_stop(void) |
@@ -193,12 +195,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
193 | /* preload SMP state for boot cpu */ | 195 | /* preload SMP state for boot cpu */ |
194 | void __devinit smp_prepare_boot_cpu(void) | 196 | void __devinit smp_prepare_boot_cpu(void) |
195 | { | 197 | { |
196 | /* | ||
197 | * This assumes that bootup is always handled by the processor | ||
198 | * with the logic and physical number 0. | ||
199 | */ | ||
200 | __cpu_number_map[0] = 0; | ||
201 | __cpu_logical_map[0] = 0; | ||
202 | cpu_set(0, phys_cpu_present_map); | 198 | cpu_set(0, phys_cpu_present_map); |
203 | cpu_set(0, cpu_online_map); | 199 | cpu_set(0, cpu_online_map); |
204 | cpu_set(0, cpu_callin_map); | 200 | cpu_set(0, cpu_callin_map); |