|
@@ -45,6 +45,7 @@
|
|
|
#include <asm/smp_plat.h>
|
|
|
#include <asm/virt.h>
|
|
|
#include <asm/mach/arch.h>
|
|
|
+#include <asm/mpu.h>
|
|
|
|
|
|
/*
|
|
|
* as from 2.5, kernels no longer have an init_tasks structure
|
|
@@ -87,6 +88,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_ARM_MPU
|
|
|
+ secondary_data.mpu_rgn_szr = mpu_rgn_info.rgns[MPU_RAM_REGION].drsr;
|
|
|
+#endif
|
|
|
+
|
|
|
#ifdef CONFIG_MMU
|
|
|
secondary_data.pgdir = virt_to_phys(idmap_pgd);
|
|
|
secondary_data.swapper_pg_dir = virt_to_phys(swapper_pg_dir);
|
|
@@ -114,9 +119,8 @@ int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
|
|
|
pr_err("CPU%u: failed to boot: %d\n", cpu, ret);
|
|
|
}
|
|
|
|
|
|
- secondary_data.stack = NULL;
|
|
|
- secondary_data.pgdir = 0;
|
|
|
|
|
|
+ memset(&secondary_data, 0, sizeof(secondary_data));
|
|
|
return ret;
|
|
|
}
|
|
|
|