MIPS SMP code currently assumes that the boot CPU will be CPU0 of the system. For some systems, this may not be the case. Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> Signed-off-by: Tomaso Paoletti <tpaoletti@xxxxxxxxxxxxxxxxxx> Signed-off-by: Paul Gortmaker <Paul.Gortmaker@xxxxxxxxxxxxx> --- arch/mips/Kconfig | 4 ++++ arch/mips/kernel/smp.c | 2 ++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 653574b..7ff95fb 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -747,6 +747,10 @@ config HOTPLUG_CPU bool default n +config MIPS_DISABLE_BOOT_CPU_ZERO + bool + default n + config I8259 bool diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index b79ea70..e2597ef 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c @@ -195,12 +195,14 @@ void __init smp_prepare_cpus(unsigned int max_cpus) /* preload SMP state for boot cpu */ void __devinit smp_prepare_boot_cpu(void) { +#ifndef MIPS_DISABLE_BOOT_CPU_ZERO /* * This assumes that bootup is always handled by the processor * with the logic and physical number 0. */ __cpu_number_map[0] = 0; __cpu_logical_map[0] = 0; +#endif cpu_set(0, phys_cpu_present_map); cpu_set(0, cpu_online_map); cpu_set(0, cpu_callin_map); -- 1.5.6.5