diff options
Diffstat (limited to 'arch/mips/kernel/setup.c')
| -rw-r--r-- | arch/mips/kernel/setup.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 35b8316002f8..479515109e5b 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -338,7 +338,7 @@ static void __init bootmem_init(void)  		if (end <= reserved_end)  			continue;  #ifdef CONFIG_BLK_DEV_INITRD -		/* mapstart should be after initrd_end */ +		/* Skip zones before initrd and initrd itself */  		if (initrd_end && end <= (unsigned long)PFN_UP(__pa(initrd_end)))  			continue;  #endif @@ -371,6 +371,14 @@ static void __init bootmem_init(void)  		max_low_pfn = PFN_DOWN(HIGHMEM_START);  	} +#ifdef CONFIG_BLK_DEV_INITRD +	/* +	 * mapstart should be after initrd_end +	 */ +	if (initrd_end) +		mapstart = max(mapstart, (unsigned long)PFN_UP(__pa(initrd_end))); +#endif +  	/*  	 * Initialize the boot-time allocator with low memory only.  	 */ |