From: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Convert powerpc to use the generic framework to boot secondary CPUs. Signed-off-by: Nikunj A. Dadhania <nikunj@xxxxxxxxxxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: Paul Mackerras <paulus@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Yong Zhang <yong.zhang0@xxxxxxxxx> Cc: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Cc: linuxppc-dev@xxxxxxxxxxxxxxxx Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@xxxxxxxxxxxxxxxxxx> --- arch/powerpc/kernel/smp.c | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 1928058a..96c3718 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -544,16 +544,18 @@ static struct device_node *cpu_to_l2cache(int cpu) /* Activate a secondary processor. */ void __devinit start_secondary(void *unused) { + smpboot_start_secondary(unused); +} + +void __cpuinit __cpu_pre_starting(void *unused) +{ unsigned int cpu = smp_processor_id(); - struct device_node *l2_cache; - int i, base; atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; smp_store_cpu_info(cpu); set_dec(tb_ticks_per_jiffy); - preempt_disable(); cpu_callin_map[cpu] = 1; if (smp_ops->setup_cpu) @@ -567,8 +569,16 @@ void __devinit start_secondary(void *unused) if (system_state == SYSTEM_RUNNING) vdso_data->processorCount++; #endif - notify_cpu_starting(cpu); - set_cpu_online(cpu, true); +} + +void __cpuinit __cpu_post_online(void *unused) +{ + unsigned int cpu; + struct device_node *l2_cache; + int i, base; + + cpu = smp_processor_id(); + /* Update sibling maps */ base = cpu_first_thread_sibling(cpu); for (i = 0; i < threads_per_core; i++) { @@ -596,12 +606,6 @@ void __devinit start_secondary(void *unused) of_node_put(np); } of_node_put(l2_cache); - - local_irq_enable(); - - cpu_idle(); - - BUG(); } int setup_profiling_timer(unsigned int multiplier) -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html