The XEN_VIRT_START constant was changed in Xen4, so it can no longer be a simple define. Initialize it to its correct value depending on the Xen major version. Signed-off-by: Petr Tesarik <ptesarik@xxxxxxx> --- xen_hyper.c | 7 +++++++ xen_hyper_defs.h | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) --- a/xen_hyper.c +++ b/xen_hyper.c @@ -42,6 +42,13 @@ xen_hyper_init(void) long member_offset; #endif +#ifdef X86_64 + if (xen_major_version() >= 4) + xht->xen_virt_start = 0xffff82c480000000; + else + xht->xen_virt_start = 0xffff828c80000000; +#endif + if (machine_type("X86_64") && symbol_exists("xen_phys_start") && !xen_phys_start()) error(WARNING, --- a/xen_hyper_defs.h +++ b/xen_hyper_defs.h @@ -65,7 +65,7 @@ #define DIRECTMAP_VIRT_START (0xffff830000000000) #define DIRECTMAP_VIRT_END (0xffff840000000000) #define PAGE_OFFSET_XEN_HYPER DIRECTMAP_VIRT_START -#define XEN_VIRT_START (0xffff828c80000000) +#define XEN_VIRT_START (xht->xen_virt_start) #define XEN_VIRT_ADDR(vaddr) \ (((vaddr) >= XEN_VIRT_START) && ((vaddr) < DIRECTMAP_VIRT_START)) #endif @@ -408,6 +408,9 @@ struct xen_hyper_table { int percpu_shift; int idle_vcpu_size; ulong *idle_vcpu_array; +#ifdef X86_64 + ulong xen_virt_start; +#endif }; struct xen_hyper_dumpinfo_context { -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility