From: "Jan Beulich" Subject: [PATCH 10/10] linux/x86-64 2.6.18: reserve bootmem differently Date: Mon, 05 Mar 2007 11:19:22 +0000 Message-ID: <45EC0ACA.76E4.0078.0@novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Do init memory reservation in a single step rather then piece-wise. This is not really addressing a problem, but simplifies things a little. Signed-off-by: Jan Beulich Index: head-2007-02-27/arch/x86_64/kernel/setup-xen.c =================================================================== --- head-2007-02-27.orig/arch/x86_64/kernel/setup-xen.c 2007-03-05 10:00:18.000000000 +0100 +++ head-2007-02-27/arch/x86_64/kernel/setup-xen.c 2007-02-27 16:27:37.000000000 +0100 @@ -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.