From 193a178232f8bb6a4d598ff9ccf99b006839beda Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Thu, 5 Aug 2010 12:55:55 +1000 Subject: [PATCH] --- yaml --- r: 212687 b: refs/heads/master c: 719c1514f2fef5f01fcfa2bba81b7bb079c7c6a1 h: refs/heads/master i: 212685: 803a8420353199281935fb339553efc7b42bb511 212683: cf05f31929e2ec6a8e404862ebb0def9dd69dc43 212679: 4a7ff7c02709d419c941ea5dada560bdf52f8b1c 212671: 68e64af592d048be3efb939389219155efaa26ff v: v3 --- [refs] | 2 +- trunk/arch/arm/mm/init.c | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 68f7912089cf..e4703de82adb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 28be7072ce54b82642ebff6a80d474d4c6a6a7fd +refs/heads/master: 719c1514f2fef5f01fcfa2bba81b7bb079c7c6a1 diff --git a/trunk/arch/arm/mm/init.c b/trunk/arch/arm/mm/init.c index e739223e2a54..8504906b147f 100644 --- a/trunk/arch/arm/mm/init.c +++ b/trunk/arch/arm/mm/init.c @@ -150,6 +150,7 @@ static void __init find_limits(struct meminfo *mi, static void __init arm_bootmem_init(struct meminfo *mi, unsigned long start_pfn, unsigned long end_pfn) { + struct memblock_region *reg; unsigned int boot_pages; phys_addr_t bitmap; pg_data_t *pgdat; @@ -180,13 +181,13 @@ static void __init arm_bootmem_init(struct meminfo *mi, /* * Reserve the memblock reserved regions in bootmem. */ - for (i = 0; i < memblock.reserved.cnt; i++) { - phys_addr_t start = memblock_start_pfn(&memblock.reserved, i); - if (start >= start_pfn && - memblock_end_pfn(&memblock.reserved, i) <= end_pfn) + for_each_memblock(reserved, reg) { + phys_addr_t start = memblock_region_base_pfn(reg); + phys_addr_t end = memblock_region_end_pfn(reg); + if (start >= start_pfn && end <= end_pfn) reserve_bootmem_node(pgdat, __pfn_to_phys(start), - memblock_size_bytes(&memblock.reserved, i), - BOOTMEM_DEFAULT); + (end - start) << PAGE_SHIFT, + BOOTMEM_DEFAULT); } } @@ -247,10 +248,12 @@ static void arm_memory_present(void) #else static void arm_memory_present(void) { + struct memblock_region *reg; int i; - for (i = 0; i < memblock.memory.cnt; i++) - memory_present(0, memblock_start_pfn(&memblock.memory, i), - memblock_end_pfn(&memblock.memory, i)); + + for_each_memblock(memory, reg) { + memory_present(0, memblock_region_base_pfn(reg), + memblock_region_end_pfn(reg)); } #endif