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

[Xen-devel] [RFC PATCH 13/35] Support loading an initrd when running on Xen



Due to the initial physical memory layout when booting on Xen, the initrd
image ends up below min_low_pfn (as registered with the bootstrap memory
allocator). Add an i386 build option to allow this scenario by setting
the initrd_below_start_ok flag.

Signed-off-by: Ian Pratt <ian.pratt@xxxxxxxxxxxxx>
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
---
 arch/i386/kernel/setup.c |    7 ++++++-
 drivers/block/Kconfig    |    4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)

--- xen-subarch-2.6.orig/arch/i386/kernel/setup.c
+++ xen-subarch-2.6/arch/i386/kernel/setup.c
@@ -1237,10 +1237,15 @@ void __init setup_bootmem_allocator(void
 #ifdef CONFIG_BLK_DEV_INITRD
        if (LOADER_TYPE && INITRD_START) {
                if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) {
-                       reserve_bootmem(INITRD_START, INITRD_SIZE);
                        initrd_start =
                                INITRD_START ? INITRD_START + PAGE_OFFSET : 0;
                        initrd_end = initrd_start+INITRD_SIZE;
+#ifdef CONFIG_BLK_DEV_INITRD_BELOW_START_OK
+                       if (initrd_start < min_low_pfn << PAGE_SHIFT)
+                               initrd_below_start_ok = 1;
+                       else
+#endif
+                       reserve_bootmem(INITRD_START, INITRD_SIZE);
                }
                else {
                        printk(KERN_ERR "initrd extends beyond end of memory "
--- xen-subarch-2.6.orig/drivers/block/Kconfig
+++ xen-subarch-2.6/drivers/block/Kconfig
@@ -409,6 +409,10 @@ config BLK_DEV_INITRD
          "real" root file system, etc. See <file:Documentation/initrd.txt>
          for details.
 
+config BLK_DEV_INITRD_BELOW_START_OK
+       bool
+       depends on XEN
+       default BLK_DEV_INITRD
 
 config CDROM_PKTCDVD
        tristate "Packet writing on CD/DVD media"

--

_______________________________________________
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®.