From 0cf103ce36e49449069b665f357dec3aca4ca7bb Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Thu, 27 Sep 2007 13:47:38 -0600 Subject: [PATCH] [IA64] Kdump: pass control page to hypervisor On ia64 the control page needs to be passed down to the hypervisor on kexec. Signed-off-by: Simon Horman --- arch/ia64/kernel/machine_kexec.c | 10 ++++++++++ include/xen/interface/kexec.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index a1caeeba..665b438e 100644 --- a/arch/ia64/kernel/machine_kexec.c +++ b/arch/ia64/kernel/machine_kexec.c @@ -18,6 +18,10 @@ #include #include #include +#ifdef CONFIG_XEN +#include +#include +#endif typedef void (*relocate_new_kernel_t)(unsigned long, unsigned long, struct ia64_boot_param *, unsigned long); @@ -132,4 +136,10 @@ void machine_kexec(struct kimage *image) unw_init_running(ia64_machine_kexec, image); for(;;); } +#else /* CONFIG_XEN */ +void machine_kexec_setup_load_arg(xen_kexec_image_t *xki,struct kimage *image) +{ + xki->reboot_code_buffer = + kexec_page_to_pfn(image->control_code_page) << PAGE_SHIFT; +} #endif /* CONFIG_XEN */ diff --git a/include/xen/interface/kexec.h b/include/xen/interface/kexec.h index ca6e85b7..0f66ee0c 100644 --- a/include/xen/interface/kexec.h +++ b/include/xen/interface/kexec.h @@ -78,6 +78,9 @@ typedef struct xen_kexec_image { #if defined(__i386__) || defined(__x86_64__) unsigned long page_list[KEXEC_XEN_NO_PAGES]; +#endif +#if defined(__ia64__) + unsigned long reboot_code_buffer; #endif unsigned long indirection_page; unsigned long start_address; -- 2.39.5