From 79c62d74e11f9b2946332bd8813aae7fd4935838 Mon Sep 17 00:00:00 2001 From: Thomas Gleinxer Date: Fri, 14 Oct 2011 12:44:41 +0100 Subject: [PATCH] --- yaml --- r: 264655 b: refs/heads/master c: eb0474544bc16a9dab53b26abd846e86ba814eb1 h: refs/heads/master i: 264653: d8db800aab8bb167ae226a9cc2095a2713460959 264651: 5be3844f9991742144e10207f525b55b75c42953 264647: e0ed4ea36176d2331bd13fcac8913550dbeaf145 264639: 6e1a25360946cbe627a52daf8aa3428afa319b35 v: v3 --- [refs] | 2 +- trunk/arch/arm/kernel/smp.c | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 16650a6722bd..9ae8fc4da27d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6c5482d53f195d3ca61c9ec1be25b0f4a92575fe +refs/heads/master: eb0474544bc16a9dab53b26abd846e86ba814eb1 diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index d88ff0230e82..697e9a8cbdd8 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -301,17 +301,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void) */ platform_secondary_init(cpu); - /* - * Enable local interrupts. - */ notify_cpu_starting(cpu); - local_irq_enable(); - local_fiq_enable(); - - /* - * Setup the percpu timer for this CPU. - */ - percpu_timer_setup(); calibrate_delay(); @@ -323,9 +313,22 @@ asmlinkage void __cpuinit secondary_start_kernel(void) * before we continue. */ set_cpu_online(cpu, true); + + /* + * Setup the percpu timer for this CPU. + */ + percpu_timer_setup(); + while (!cpu_active(cpu)) cpu_relax(); + /* + * cpu_active bit is set, so it's safe to enalbe interrupts + * now. + */ + local_irq_enable(); + local_fiq_enable(); + /* * OK, it's off to the idle thread for us */