aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/smp.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2006-02-23 07:23:27 -0500
committerRalf Baechle <ralf@linux-mips.org>2006-02-27 12:30:36 -0500
commit9b6695a8adfe0916e81ddd810a5b9db3eb8b0e46 (patch)
tree62ba9475530c88ccf2149cd58eabd97ebe096aca /arch/mips/kernel/smp.c
parent3e6cb2d38a9c9758170813497a860c64543643d5 (diff)
[MIPS] SMP: Fix initialization order bug.
A recent change requires cpu_possible_map to be initialized before smp_sched_init() but most MIPS platforms were initializing their processors in the prom_prepare_cpus callback of smp_prepare_cpus. The simple fix of calling prom_prepare_cpus from one of the earlier SMP initialization hooks doesn't work well either since IPIs may require init_IRQ() to have completed, so bit the bullet and split prom_prepare_cpus into two initialization functions, plat_smp_setup which is called early from setup_arch and plat_prepare_cpus called where prom_prepare_cpus used to be called. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r--arch/mips/kernel/smp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 5e189862e523..06ed90752424 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -236,7 +236,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
236 init_new_context(current, &init_mm); 236 init_new_context(current, &init_mm);
237 current_thread_info()->cpu = 0; 237 current_thread_info()->cpu = 0;
238 smp_tune_scheduling(); 238 smp_tune_scheduling();
239 prom_prepare_cpus(max_cpus); 239 plat_prepare_cpus(max_cpus);
240} 240}
241 241
242/* preload SMP state for boot cpu */ 242/* preload SMP state for boot cpu */