ARM: 8394/1: update memblock limit after mapping lowmem
authorLaura Abbott <labbott@redhat.com>
Thu, 25 Jun 2015 00:04:20 +0000 (01:04 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 29 Jun 2015 10:15:57 +0000 (11:15 +0100)
The memblock limit is currently used in find_limits
to find the bounds for ZONE_NORMAL. The memblock
limit may need to be rounded down a PMD size to ensure
allocations are fully mapped though. This has the side
effect of reducing the amount of memory in ZONE_NORMAL.
Once all lowmem is mapped, it's safe to change the memblock
limit back to include the unaligned section. Adjust the
memblock limit after lowmem mapping is complete.

Before:
 # cat /proc/zoneinfo | grep managed
        managed  62907
        managed  424

After:
 # cat /proc/zoneinfo | grep managed
        managed  63331

Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/mmu.c

index 7186382672b5eec605cba5ff491a7019914d304b..904d1532e6d08b56b5b3361b722eedd141ee8a58 100644 (file)
@@ -1519,6 +1519,7 @@ void __init paging_init(const struct machine_desc *mdesc)
        build_mem_type_table();
        prepare_page_table();
        map_lowmem();
+       memblock_set_current_limit(arm_lowmem_limit);
        dma_contiguous_remap();
        devicemaps_init(mdesc);
        kmap_init();