On ia64 the control page needs to be passed down to the hypervisor
on kexec.
Signed-off-by: Simon Horman <horms@verge.net.au>
#include <asm/setup.h>
#include <asm/delay.h>
#include <asm/meminit.h>
+#ifdef CONFIG_XEN
+#include <xen/interface/kexec.h>
+#include <asm/kexec.h>
+#endif
typedef void (*relocate_new_kernel_t)(unsigned long, unsigned long,
struct ia64_boot_param *, unsigned long);
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 */
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;