--- d84d6bf13ae132a1736002aa65e4ccc092963b9f +++ 76b4b0958e085c43408f62c80c53b98647b2cb09 @@ -277,15 +277,7 @@ void __init smp_setup_processor_id(void) for (i = 1; i < NR_CPUS; ++i) cpu_logical_map(i) = i == cpu ? 0 : i; - printk(KERN_INFO "Booting AnthraX on physical CPU %d\n", cpu); - printk(KERN_INFO " "); - printk(KERN_INFO "........................................................................."); - printk(KERN_INFO "This software is not authorized for public use or distribution. "); - printk(KERN_INFO "see http://anthrax-kernels.us for details and use restrictions."); - printk(KERN_INFO "........................................................................."); - printk(KERN_INFO " "); - printk(KERN_INFO "Copyright(C) 2011-2012 Chad Goodman, All Rights Reserved. "); - printk(KERN_INFO " "); + printk(KERN_INFO "Booting Linux on physical CPU %d\n", cpu); } /* @@ -315,7 +307,6 @@ static inline int skip_secondary_calibra #else return -ENXIO; #endif - } /* @@ -325,20 +316,28 @@ static inline int skip_secondary_calibra asmlinkage void __cpuinit secondary_start_kernel(void) { struct mm_struct *mm = &init_mm; - unsigned int cpu = smp_processor_id(); + unsigned int cpu; pr_debug("CPU%u: Booted secondary processor\n", cpu); /* + * The identity mapping is uncached (strongly ordered), so + * switch away from it before attempting any exclusive accesses. + */ + cpu_switch_mm(mm->pgd, mm); + enter_lazy_tlb(mm, current); + local_flush_tlb_all(); + + /* * All kernel threads share the same mm context; grab a * reference and switch to it. */ + cpu = smp_processor_id(); atomic_inc(&mm->mm_count); current->active_mm = mm; cpumask_set_cpu(cpu, mm_cpumask(mm)); - cpu_switch_mm(mm->pgd, mm); - enter_lazy_tlb(mm, current); - local_flush_tlb_all(); + + printk("CPU%u: Booted secondary processor\n", cpu); cpu_init(); preempt_disable(); @@ -349,9 +348,6 @@ asmlinkage void __cpuinit secondary_star */ platform_secondary_init(cpu); - /* - * Enable local interrupts. - */ notify_cpu_starting(cpu); if (skip_secondary_calibrate()) @@ -564,9 +560,9 @@ static void ipi_cpu_stop(unsigned int cp raw_spin_lock(&stop_lock); printk(KERN_CRIT "CPU%u: stopping\n", cpu); dump_stack(); -#if CONFIG_SEC_DEBUG +/*#if CONFIG_SEC_DEBUG sec_debug_dump_stack(); -#endif +#endif*/ raw_spin_unlock(&stop_lock); }