From d52392eb1cece22d3b1da5f9d05a2c3b054387e5 Mon Sep 17 00:00:00 2001 From: Russell King Date: Wed, 27 Oct 2010 19:37:06 +0100 Subject: [PATCH] --- yaml --- r: 221031 b: refs/heads/master c: d0e775afb94d9b61ba6c63299169ef7a87b68189 h: refs/heads/master i: 221029: b018fef6983467fdc860085a862c612d64a93b81 221027: 75cf6219d79b2a0d0818d3c338ea5019ec0c0c6c 221023: 0bf943857cd1c7187c11c169036463af18318cff v: v3 --- [refs] | 2 +- trunk/arch/arm/mm/init.c | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 2f1d537dc9ed..59d0b7ee46bb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 47ea3c15498154f634c304e08dee284efdd7dceb +refs/heads/master: d0e775afb94d9b61ba6c63299169ef7a87b68189 diff --git a/trunk/arch/arm/mm/init.c b/trunk/arch/arm/mm/init.c index 58b90ad4949f..1b4e0abf113a 100644 --- a/trunk/arch/arm/mm/init.c +++ b/trunk/arch/arm/mm/init.c @@ -436,6 +436,22 @@ static void __init free_unused_memmap(struct meminfo *mi) } } +static void __init free_highpages(void) +{ +#ifdef CONFIG_HIGHMEM + int i; + + /* set highmem page free */ + for_each_bank (i, &meminfo) { + unsigned long start = bank_pfn_start(&meminfo.bank[i]); + unsigned long end = bank_pfn_end(&meminfo.bank[i]); + if (start >= max_low_pfn + PHYS_PFN_OFFSET) + totalhigh_pages += free_area(start, end, NULL); + } + totalram_pages += totalhigh_pages; +#endif +} + /* * mem_init() marks the free areas in the mem_map and tells us how much * memory is free. This is done after various parts of the system have @@ -465,16 +481,7 @@ void __init mem_init(void) __phys_to_pfn(__pa(swapper_pg_dir)), NULL); #endif -#ifdef CONFIG_HIGHMEM - /* set highmem page free */ - for_each_bank (i, &meminfo) { - unsigned long start = bank_pfn_start(&meminfo.bank[i]); - unsigned long end = bank_pfn_end(&meminfo.bank[i]); - if (start >= max_low_pfn + PHYS_PFN_OFFSET) - totalhigh_pages += free_area(start, end, NULL); - } - totalram_pages += totalhigh_pages; -#endif + free_highpages(); reserved_pages = free_pages = 0;