summaryrefslogtreecommitdiff
path: root/arch/arm/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r--arch/arm/mm/init.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 6f81c8e05c3a..cb4e96e1019d 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -339,7 +339,7 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
#ifdef CONFIG_XIP_KERNEL
memblock_reserve(__pa(_sdata), _end - _sdata);
#else
- memblock_reserve(__pa(_stext), _end - _stext);
+ memblock_reserve(__pa(_stext), ALIGN(_end - _stext, PMD_SIZE));
#endif
#ifdef CONFIG_BLK_DEV_INITRD
if (phys_initrd_size &&
@@ -734,6 +734,7 @@ void __init mem_init(void)
void free_initmem(void)
{
+#ifndef CONFIG_CPA
#ifdef CONFIG_HAVE_TCM
extern char __tcm_start, __tcm_end;
@@ -748,6 +749,7 @@ void free_initmem(void)
totalram_pages += free_area(__phys_to_pfn(__pa(__init_begin)),
__phys_to_pfn(__pa(__init_end)),
"init");
+#endif
}
#ifdef CONFIG_BLK_DEV_INITRD
@@ -756,12 +758,14 @@ static int keep_initrd;
void free_initrd_mem(unsigned long start, unsigned long end)
{
+#ifndef CONFIG_CPA
if (!keep_initrd) {
poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
totalram_pages += free_area(__phys_to_pfn(__pa(start)),
__phys_to_pfn(__pa(end)),
"initrd");
}
+#endif
}
static int __init keepinitrd_setup(char *__unused)