On Fri, Apr 3, 2015 at 9:14 AM, Toshi Kani <toshi.kani@xxxxxx> wrote: > On Wed, 2015-04-01 at 09:12 +0200, Christoph Hellwig wrote: > : >> @@ -748,7 +758,7 @@ u64 __init early_reserve_e820(u64 size, u64 align) >> /* >> * Find the highest page frame number we have available >> */ >> -static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) >> +static unsigned long __init e820_end_pfn(unsigned long limit_pfn) >> { >> int i; >> unsigned long last_pfn = 0; >> @@ -759,7 +769,11 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) >> unsigned long start_pfn; >> unsigned long end_pfn; >> >> - if (ei->type != type) >> + /* >> + * Persistent memory is accounted as ram for purposes of >> + * establishing max_pfn and mem_map. >> + */ >> + if (ei->type != E820_RAM && ei->type != E820_PRAM) >> continue; > > Should we also delete this code, accounting E820_PRAM as ram, along with > the deletion of reserve_pmem() in this version? should revert those end_of_ram change as attached.
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index e2ce85d..e09a346 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -752,7 +752,7 @@ u64 __init early_reserve_e820(u64 size, u64 align) /* * Find the highest page frame number we have available */ -static unsigned long __init e820_end_pfn(unsigned long limit_pfn) +static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) { int i; unsigned long last_pfn = 0; @@ -763,11 +763,7 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn) unsigned long start_pfn; unsigned long end_pfn; - /* - * Persistent memory is accounted as ram for purposes of - * establishing max_pfn and mem_map. - */ - if (ei->type != E820_RAM && ei->type != E820_PRAM) + if (ei->type != type) continue; start_pfn = ei->addr >> PAGE_SHIFT; @@ -792,12 +788,12 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn) } unsigned long __init e820_end_of_ram_pfn(void) { - return e820_end_pfn(MAX_ARCH_PFN); + return e820_end_pfn(MAX_ARCH_PFN, E820_RAM); } unsigned long __init e820_end_of_low_ram_pfn(void) { - return e820_end_pfn(1UL << (32-PAGE_SHIFT)); + return e820_end_pfn(1UL<<(32 - PAGE_SHIFT), E820_RAM); } static void early_panic(char *msg)