diff options
author | Keir Fraser <keir@xen.org> | 2010-10-24 13:15:06 +0100 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-10-24 13:15:06 +0100 |
commit | a372e7a86e73f0580fd5ae03fb11555baffe2786 (patch) | |
tree | b582af581b4e5821d23a66d3238fe15f07337e8a /xen/arch/x86/machine_kexec.c | |
parent | d6b5b105305dcc2c200ab82b942489902ef7dc7a (diff) | |
download | xen-a372e7a86e73f0580fd5ae03fb11555baffe2786.tar.gz xen-a372e7a86e73f0580fd5ae03fb11555baffe2786.tar.bz2 xen-a372e7a86e73f0580fd5ae03fb11555baffe2786.zip |
x86/kexec: fix very old regression and make compatible with modern Linux
c/s 13829 lost the (32-bit only) cpu_has_pae argument passed to the
primary kernel's stub (in the 32-bit Xen case only), and Linux
2.6.27/.30 (32-/64-bit) introduced a new argument (for KEXEC_JUMP)
which for now simply gets passed a hardcoded value.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/machine_kexec.c')
-rw-r--r-- | xen/arch/x86/machine_kexec.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/xen/arch/x86/machine_kexec.c b/xen/arch/x86/machine_kexec.c index d3f146854f..9e5e7abda5 100644 --- a/xen/arch/x86/machine_kexec.c +++ b/xen/arch/x86/machine_kexec.c @@ -23,7 +23,11 @@ typedef void (*relocate_new_kernel_t)( unsigned long indirection_page, unsigned long *page_list, - unsigned long start_address); + unsigned long start_address, +#ifdef __i386__ + unsigned int cpu_has_pae, +#endif + unsigned int preserve_context); extern int machine_kexec_get_xen(xen_kexec_range_t *range); @@ -121,7 +125,11 @@ void machine_kexec(xen_kexec_image_t *image) rnk = (relocate_new_kernel_t) image->page_list[1]; (*rnk)(image->indirection_page, image->page_list, - image->start_address); + image->start_address, +#ifdef __i386__ + 1 /* cpu_has_pae */, +#endif + 0 /* preserve_context */); } } |