Skip to contentSkip to conversation

linux/x86-64 2.6.18: reserve bootmem differently

PATCH In review Jan Beulich 1 participant 1 message Mar 5, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 10/10 linux/x86-64 2.6.18: reserve bootmem differently

Do init memory reservation in a single step rather then piece-wise. This is not really addressing a problem, but simplifies things a little.

arch/x86_64/kernel/setup-xen.c +8 -6
Index: head-2007-02-27/arch/x86_64/kernel/setup-xen.c
===================================================================
@@ -691,6 +691,14 @@ void __init setup_arch(char **cmdline_p)
 	contig_initmem_init(0, end_pfn);
 #endif
 
+#ifdef CONFIG_XEN
+	/*
+	 * Reserve kernel, physmap, start info, initial page tables, and
+	 * direct mapping.
+	 */
+	reserve_bootmem_generic(__pa_symbol(&_text),
+	                        (table_end << PAGE_SHIFT) - __pa_symbol(&_text));
+#else
 	/* Reserve direct mapping */
 	reserve_bootmem_generic(table_start << PAGE_SHIFT, 
 				(table_end - table_start) << PAGE_SHIFT);
@@ -699,12 +707,6 @@ void __init setup_arch(char **cmdline_p)
 	reserve_bootmem_generic(__pa_symbol(&_text),
 				__pa_symbol(&_end) - __pa_symbol(&_text));
 
-#ifdef CONFIG_XEN
-	/* reserve physmap, start info and initial page tables */
-	reserve_bootmem_generic(__pa_symbol(&_end),
-				(table_start << PAGE_SHIFT) -
-				__pa_symbol(&_end));
-#else
 	/*
 	 * reserve physical page 0 - it's a special BIOS page on many boxes,
 	 * enabling clean reboots, SMP operation, laptop functions.