diff options
Diffstat (limited to 'arch/arm/mach-realview/platsmp.c')
-rw-r--r-- | arch/arm/mach-realview/platsmp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index b8484e15dacb..fce3596f9950 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -52,13 +52,14 @@ void __cpuinit platform_secondary_init(unsigned int cpu) | |||
52 | * core (e.g. timer irq), then they will not have been enabled | 52 | * core (e.g. timer irq), then they will not have been enabled |
53 | * for us: do so | 53 | * for us: do so |
54 | */ | 54 | */ |
55 | gic_cpu_init(__io_address(REALVIEW_GIC_CPU_BASE)); | 55 | gic_cpu_init(0, __io_address(REALVIEW_GIC_CPU_BASE)); |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * let the primary processor know we're out of the | 58 | * let the primary processor know we're out of the |
59 | * pen, then head off into the C entry point | 59 | * pen, then head off into the C entry point |
60 | */ | 60 | */ |
61 | pen_release = -1; | 61 | pen_release = -1; |
62 | smp_wmb(); | ||
62 | 63 | ||
63 | /* | 64 | /* |
64 | * Synchronise with the boot thread. | 65 | * Synchronise with the boot thread. |
@@ -102,6 +103,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
102 | 103 | ||
103 | timeout = jiffies + (1 * HZ); | 104 | timeout = jiffies + (1 * HZ); |
104 | while (time_before(jiffies, timeout)) { | 105 | while (time_before(jiffies, timeout)) { |
106 | smp_rmb(); | ||
105 | if (pen_release == -1) | 107 | if (pen_release == -1) |
106 | break; | 108 | break; |
107 | 109 | ||