Xen changeset 26447 (x86: re-introduce map_domain_page() et al) once again
altered virtual address space. Current algorithm calculating its start could
not cope with that change. New version establishes this value on the base of
image start address and is more generic.
Signed-off-by: Daniel Kiper <daniel.kiper(a)oracle.com>
diff -Npru crash-6.1.4.orig/xen_hyper.c crash-6.1.4/xen_hyper.c
--- crash-6.1.4.orig/xen_hyper.c 2013-02-14 21:38:54.000000000 +0100
+++ crash-6.1.4/xen_hyper.c 2013-03-15 13:11:16.595713662 +0100
@@ -43,10 +43,14 @@ xen_hyper_init(void)
#endif
#ifdef X86_64
- if (xen_major_version() >= 4)
- xht->xen_virt_start = 0xffff82c480000000;
- else
- xht->xen_virt_start = 0xffff828c80000000;
+ xht->xen_virt_start = symbol_value("start");
+
+ /*
+ * Xen virtual mapping is aligned to 1 GiB boundary.
+ * Image starts no more than 1 GiB below
+ * beginning of virtual address space.
+ */
+ xht->xen_virt_start &= 0xffffffffc0000000;
#endif
if (machine_type("X86_64") &&