diff options
| -rw-r--r-- | arch/mips/kernel/setup.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 0d57909d9026..f66e5ce505b2 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -368,6 +368,19 @@ static void __init bootmem_init(void)  		end = PFN_DOWN(boot_mem_map.map[i].addr  				+ boot_mem_map.map[i].size); +#ifndef CONFIG_HIGHMEM +		/* +		 * Skip highmem here so we get an accurate max_low_pfn if low +		 * memory stops short of high memory. +		 * If the region overlaps HIGHMEM_START, end is clipped so +		 * max_pfn excludes the highmem portion. +		 */ +		if (start >= PFN_DOWN(HIGHMEM_START)) +			continue; +		if (end > PFN_DOWN(HIGHMEM_START)) +			end = PFN_DOWN(HIGHMEM_START); +#endif +  		if (end > max_low_pfn)  			max_low_pfn = end;  		if (start < min_low_pfn)  | 

