From 75876faeab722194c9fe2652e48f070e74cbba04 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 19 May 2011 13:22:48 +0100 Subject: [PATCH] --- yaml --- r: 252399 b: refs/heads/master c: 40f7bfe4f1c2761abeceb3b2b9dc1feec3c47ed9 h: refs/heads/master i: 252397: 362a37eb8f42bb5885ae49b49871934060bfc456 252395: 74b1ca8717777826f5d1cdf96142e3c55ba52395 252391: 99430d326a5f43cc1df92e5aa46e6d43f6002fc9 252383: e8fa5981f1e33016af6e6fb895ab8ba41fe1e2bb v: v3 --- [refs] | 2 +- trunk/arch/arm/mm/mmu.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 7dbe65a66198..c2a4fa0b91dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7b7bf499f79de3f6c85a340c8453a78789523f85 +refs/heads/master: 40f7bfe4f1c2761abeceb3b2b9dc1feec3c47ed9 diff --git a/trunk/arch/arm/mm/mmu.c b/trunk/arch/arm/mm/mmu.c index 08a92368d9d3..9d9e736c2b4f 100644 --- a/trunk/arch/arm/mm/mmu.c +++ b/trunk/arch/arm/mm/mmu.c @@ -763,15 +763,12 @@ static void __init sanity_check_meminfo(void) { int i, j, highmem = 0; - lowmem_limit = __pa(vmalloc_min - 1) + 1; - memblock_set_current_limit(lowmem_limit); - for (i = 0, j = 0; i < meminfo.nr_banks; i++) { struct membank *bank = &meminfo.bank[j]; *bank = meminfo.bank[i]; #ifdef CONFIG_HIGHMEM - if (__va(bank->start) > vmalloc_min || + if (__va(bank->start) >= vmalloc_min || __va(bank->start) < (void *)PAGE_OFFSET) highmem = 1; @@ -829,6 +826,9 @@ static void __init sanity_check_meminfo(void) bank->size = newsize; } #endif + if (!bank->highmem && bank->start + bank->size > lowmem_limit) + lowmem_limit = bank->start + bank->size; + j++; } #ifdef CONFIG_HIGHMEM @@ -852,6 +852,7 @@ static void __init sanity_check_meminfo(void) } #endif meminfo.nr_banks = j; + memblock_set_current_limit(lowmem_limit); } static inline void prepare_page_table(void)