aboutsummaryrefslogtreecommitdiffstats
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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 659c75d808dc..92bba32d9230 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -322,7 +322,7 @@ void __init arm_memblock_init(const struct machine_desc *mdesc)
322 * reserve memory for DMA contigouos allocations, 322 * reserve memory for DMA contigouos allocations,
323 * must come from DMA area inside low memory 323 * must come from DMA area inside low memory
324 */ 324 */
325 dma_contiguous_reserve(min(arm_dma_limit, arm_lowmem_limit)); 325 dma_contiguous_reserve(arm_dma_limit);
326 326
327 arm_memblock_steal_permitted = false; 327 arm_memblock_steal_permitted = false;
328 memblock_dump_all(); 328 memblock_dump_all();
@@ -636,6 +636,11 @@ static int keep_initrd;
636void free_initrd_mem(unsigned long start, unsigned long end) 636void free_initrd_mem(unsigned long start, unsigned long end)
637{ 637{
638 if (!keep_initrd) { 638 if (!keep_initrd) {
639 if (start == initrd_start)
640 start = round_down(start, PAGE_SIZE);
641 if (end == initrd_end)
642 end = round_up(end, PAGE_SIZE);
643
639 poison_init_mem((void *)start, PAGE_ALIGN(end) - start); 644 poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
640 free_reserved_area((void *)start, (void *)end, -1, "initrd"); 645 free_reserved_area((void *)start, (void *)end, -1, "initrd");
641 } 646 }