From d73860b074d379ca82e5e961606b190d5a58ae38 Mon Sep 17 00:00:00 2001 From: Jacob Shin Date: Thu, 20 Oct 2011 16:15:26 -0500 Subject: [PATCH] --- yaml --- r: 334604 b: refs/heads/master c: 1bbbbe779aabe1f0768c2bf8f8c0a5583679b54a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/setup.c | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 88a73b5f1e81..56aa6b1b6560 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 961c79761dda351b5fb263a0654b98daac130b7a +refs/heads/master: 1bbbbe779aabe1f0768c2bf8f8c0a5583679b54a diff --git a/trunk/arch/x86/kernel/setup.c b/trunk/arch/x86/kernel/setup.c index f4b9b80e1b95..198e774498ec 100644 --- a/trunk/arch/x86/kernel/setup.c +++ b/trunk/arch/x86/kernel/setup.c @@ -919,8 +919,21 @@ void __init setup_arch(char **cmdline_p) #ifdef CONFIG_X86_64 if (max_pfn > max_low_pfn) { - max_pfn_mapped = init_memory_mapping(1UL<<32, - max_pfn<addr + ei->size <= 1UL << 32) + continue; + + if (ei->type == E820_RESERVED) + continue; + + max_pfn_mapped = init_memory_mapping( + ei->addr < 1UL << 32 ? 1UL << 32 : ei->addr, + ei->addr + ei->size); + } + /* can we preseve max_low_pfn ?*/ max_low_pfn = max_pfn; }