Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / arch / blackfin / mach-common / smp.c
index d92b168..369e687 100644 (file)
@@ -336,13 +336,6 @@ int __cpuinit __cpu_up(unsigned int cpu)
 
        ret = platform_boot_secondary(cpu, idle);
 
-       if (ret) {
-               cpu_clear(cpu, cpu_present_map);
-               printk(KERN_CRIT "CPU%u: processor failed to boot (%d)\n", cpu, ret);
-               free_task(idle);
-       } else
-               cpu_set(cpu, cpu_online_map);
-
        secondary_stack = NULL;
 
        return ret;
@@ -418,9 +411,16 @@ void __cpuinit secondary_start_kernel(void)
 
        setup_secondary(cpu);
 
+       platform_secondary_init(cpu);
+
        local_irq_enable();
 
-       platform_secondary_init(cpu);
+       /*
+        * Calibrate loops per jiffy value.
+        * IRQs need to be enabled here - D-cache can be invalidated
+        * in timer irq handler, so core B can read correct jiffies.
+        */
+       calibrate_delay();
 
        cpu_idle();
 }