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

[Xen-changelog] [linux-2.6.18-xen] [IA64] kexec/kdump: call xen_machine_kexec_setup_resources after init_bootmem



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1190997246 21600
# Node ID f3796d4aa5f58ac9f5a67d0ea9dc761e376e2270
# Parent  4edc8d689989510d6eaa1bdcdcf742e6e43baad0
[IA64] kexec/kdump: call xen_machine_kexec_setup_resources after init_bootmem

Early on in find_memory(), reserve_memory() is called,
which in turn calls xen_machine_kexec_setup_resources()
and in turn alloc_bootmem_low().

However, before alloc_bootmem_low() can be called,
init_bootmem() needs to be called.

To resolve this problem, the call to xen_machine_kexec_setup_resources()
is moved to just after the call to init_bootmem() in alloc_bootmem_low().

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
---
 arch/ia64/kernel/setup.c |    5 +----
 arch/ia64/mm/contig.c    |    6 ++++++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff -r 4edc8d689989 -r f3796d4aa5f5 arch/ia64/kernel/setup.c
--- a/arch/ia64/kernel/setup.c  Fri Sep 28 10:32:36 2007 -0600
+++ b/arch/ia64/kernel/setup.c  Fri Sep 28 10:34:06 2007 -0600
@@ -308,12 +308,9 @@ reserve_memory (void)
                char *from = strstr(saved_command_line, "crashkernel=");
                unsigned long base, size;
 #ifdef CONFIG_XEN
-               if (is_initial_xendomain()) {
-                       if (from)
+               if (is_initial_xendomain() && from)
                                printk("Ignoring crashkernel command line, "
                                       "parameter will be supplied by xen\n");
-                       xen_machine_kexec_setup_resources();
-               }
                else {
 #endif
                if (from) {
diff -r 4edc8d689989 -r f3796d4aa5f5 arch/ia64/mm/contig.c
--- a/arch/ia64/mm/contig.c     Fri Sep 28 10:32:36 2007 -0600
+++ b/arch/ia64/mm/contig.c     Fri Sep 28 10:34:06 2007 -0600
@@ -18,6 +18,9 @@
 #include <linux/efi.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
+#ifdef CONFIG_XEN
+#include <linux/kexec.h>
+#endif
 
 #include <asm/meminit.h>
 #include <asm/pgalloc.h>
@@ -172,6 +175,9 @@ find_memory (void)
        /* Free all available memory, then mark bootmem-map as being in use. */
        efi_memmap_walk(filter_rsvd_memory, free_bootmem);
        reserve_bootmem(bootmap_start, bootmap_size);
+#ifdef CONFIG_XEN
+       xen_machine_kexec_setup_resources();
+#endif
 
        find_initrd();
 

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


 


Rackspace

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