Эх сурвалжийг харах

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>
Max Filippov 11 жил өмнө
parent
commit
566fb58ed4
1 өөрчлөгдсөн 11 нэмэгдсэн , 0 устгасан
  1. 11 0
      arch/xtensa/mm/init.c

+ 11 - 0
arch/xtensa/mm/init.c

@@ -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;