Xen dumps fail, because the p2m mapping is initialized too late.
The dependency goes like this:

- Xen uses FLATMEM
- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
- get_dom0_mapnr() needs p2m mappings to read from a VADDR
- the p2m list is initialized in get_machdep_info()

Signed-off-by: Petr Tesarik <[email protected]>
---
 makedumpfile.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index e91583d..d3f5237 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3128,6 +3128,12 @@ out:
        if (!get_max_mapnr())
                return FALSE;
 
+       if (debug_info && !get_machdep_info())
+               return FALSE;
+
+       if (is_xen_memory() && !get_dom0_mapnr())
+               return FALSE;
+
        if (info->flag_cyclic) {
                if (info->bufsize_cyclic == 0) {
                        if (!calculate_cyclic_buffer_size())
@@ -3185,9 +3191,6 @@ out:
                if (info->flag_sadump)
                        (void) sadump_virt_phys_base();
 
-               if (!get_machdep_info())
-                       return FALSE;
-
                if (info->flag_sadump) {
                        int online_cpus;
 
@@ -3233,9 +3236,6 @@ out:
                        return FALSE;
        }
 
-       if (is_xen_memory() && !get_dom0_mapnr())
-               return FALSE;
-
        if (!get_value_for_old_linux())
                return FALSE;
 
-- 
1.8.4.5


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to