summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/smp.c
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2012-02-28 14:02:59 +0100
committerJonathan Austin <jonathan.austin@arm.com>2013-06-07 18:02:43 +0200
commitc4a1f032ed35d744e3d74b8aebe8d85f29aecd88 (patch)
tree2d81d028e4f4b87cf8d0668a2b6563449c9b5798 /arch/arm/kernel/smp.c
parentARM: nommu: provide dummy cpu_switch_mm implementation (diff)
downloadlinux-c4a1f032ed35d744e3d74b8aebe8d85f29aecd88.tar.xz
linux-c4a1f032ed35d744e3d74b8aebe8d85f29aecd88.zip
ARM: nommu: do not initialise page tables in secondary_data structure
nommu systems do not require any page tables, so don't try to initialise them when bringing up secondary cores. Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm/kernel/smp.c')
-rw-r--r--arch/arm/kernel/smp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 550d63cef68e..44d1c00dc45f 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -87,8 +87,10 @@ int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
* its stack and the page tables.
*/
secondary_data.stack = task_stack_page(idle) + THREAD_START_SP;
+#ifdef CONFIG_MMU
secondary_data.pgdir = virt_to_phys(idmap_pgd);
secondary_data.swapper_pg_dir = virt_to_phys(swapper_pg_dir);
+#endif
__cpuc_flush_dcache_area(&secondary_data, sizeof(secondary_data));
outer_clean_range(__pa(&secondary_data), __pa(&secondary_data + 1));