xtensa: nommu: reserve memory below PLATFORM_DEFAULT_MEM_START

Memory accounting code can't handle pages below
PLATFORM_DEFAULT_MEM_START. Reserve those pages if they exist.
When PLATFORM_DEFAULT_MEM_START is zero reserve one page at address 0 to
make sure that successfull memory allocations don't return NULL.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
Max Filippov 2014-10-04 03:46:34 +04:00
parent 2eabc1800d
commit 566fb58ed4
1 changed files with 11 additions and 0 deletions

View File

@ -239,6 +239,17 @@ void __init bootmem_init(void)
unsigned long bootmap_start, bootmap_size;
int i;
/* Reserve all memory below PLATFORM_DEFAULT_MEM_START, as memory
* accounting doesn't work for pages below that address.
*
* If PLATFORM_DEFAULT_MEM_START is zero reserve page at address 0:
* successfull allocations should never return NULL.
*/
if (PLATFORM_DEFAULT_MEM_START)
mem_reserve(0, PLATFORM_DEFAULT_MEM_START, 0);
else
mem_reserve(0, 1, 0);
sysmem_dump();
max_low_pfn = max_pfn = 0;
min_low_pfn = ~0;