[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] i386: fix boot



Since the Xen heap pages (which are the only ones mapped at this point)
don't get passed to init_boot_pages(), it has no place to store the
bootmem regions without faulting. Hence, a mapped page must be passed
to that function as the very first thing.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2009-07-10.orig/xen/arch/x86/setup.c        2009-07-10 13:58:29.000000000 
+0200
+++ 2009-07-10/xen/arch/x86/setup.c     2009-07-10 16:11:31.000000000 +0200
@@ -766,7 +766,9 @@ void __init __start_xen(unsigned long mb
     reserve_e820_ram(&boot_e820, initial_images_base, initial_images_end);
 
 #if defined(CONFIG_X86_32)
-    xenheap_initial_phys_start = __pa(&_end);
+    xenheap_initial_phys_start = (PFN_UP(__pa(&_end)) + 1) << PAGE_SHIFT;
+    /* Must pass a single mapped page for populating bootmem_region_list. */
+    init_boot_pages(__pa(&_end), xenheap_initial_phys_start);
     xenheap_phys_end = DIRECTMAP_MBYTES << 20;
 #else
     if ( !xen_phys_start )




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.