|
@@ -350,7 +350,7 @@ int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map,
|
|
|
* continue building up new bios map based on this
|
|
|
* information
|
|
|
*/
|
|
|
- if (current_type != last_type || current_type == E820_PRAM) {
|
|
|
+ if (current_type != last_type) {
|
|
|
if (last_type != 0) {
|
|
|
new_bios[new_bios_entry].size =
|
|
|
change_point[chgidx]->addr - last_addr;
|
|
@@ -783,7 +783,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;
|
|
@@ -794,11 +794,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;
|
|
@@ -823,12 +819,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 __init early_panic(char *msg)
|