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 <ptesarik at suse.cz> --- 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