5a49a4e63b
22045-python27-compat.patch Thu Nov 11 18:44:48 CST 2010 - cyliu@novell.com - bnc#641144 - FV Xen VM running windows or linux cannot write to virtual floppy drive bdrv_default_rwflag.patch - fate#310510 - fix xenpaging xenpaging.optimize_p2m_mem_paging_populate.patch xenpaging.HVMCOPY_gfn_paged_out.patch - bnc#649864 - automatic numa cpu placement of xen conflicts with cpupools 22326-cpu-pools-numa-placement.patch - fate#310510 - fix xenpaging xenpaging.populate_only_if_paged.patch - revert logic, populate needs to happen unconditionally xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch - invalidate current mfn only if gfn is not in flight or done xenpaging.mem_event_check_ring-free_requests.patch - print info only if 1 instead of 2 slots are free xenpaging.guest_remove_page.patch - check mfn before usage in resume function xenpaging.machine_to_phys_mapping.patch - check mfn before usage in resume function - bnc#552115 - Remove target discovery in block-iscsi OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=82
72 lines
2.5 KiB
Diff
72 lines
2.5 KiB
Diff
# HG changeset patch
|
|
# User Keir Fraser <keir@xen.org>
|
|
# Date 1287922506 -3600
|
|
# Node ID d6e3cd10a9a6ab16d0cc772ee70b2ae99e8fac31
|
|
# Parent 2208a036f8d9d932de8ab0aa0206f5c57dba8728
|
|
x86/kexec: fix very old regression and make compatible with modern Linux
|
|
References: bnc#619122
|
|
|
|
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>
|
|
|
|
--- 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 *im
|
|
|
|
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 */);
|
|
}
|
|
}
|
|
|
|
--- a/xen/arch/x86/x86_64/compat_kexec.S
|
|
+++ b/xen/arch/x86/x86_64/compat_kexec.S
|
|
@@ -119,6 +119,7 @@ compatibility_mode:
|
|
movl %eax, %ss
|
|
|
|
/* Push arguments onto stack. */
|
|
+ pushl $0 /* 20(%esp) - preserve context */
|
|
pushl $1 /* 16(%esp) - cpu has pae */
|
|
pushl %ecx /* 12(%esp) - start address */
|
|
pushl %edx /* 8(%esp) - page list */
|
|
--- a/xen/include/asm-x86/cpufeature.h
|
|
+++ b/xen/include/asm-x86/cpufeature.h
|
|
@@ -138,7 +138,6 @@
|
|
#define cpu_has_de boot_cpu_has(X86_FEATURE_DE)
|
|
#define cpu_has_pse boot_cpu_has(X86_FEATURE_PSE)
|
|
#define cpu_has_tsc boot_cpu_has(X86_FEATURE_TSC)
|
|
-#define cpu_has_pae boot_cpu_has(X86_FEATURE_PAE)
|
|
#define cpu_has_pge boot_cpu_has(X86_FEATURE_PGE)
|
|
#define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT)
|
|
#define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC)
|
|
@@ -164,7 +163,6 @@
|
|
#define cpu_has_de 1
|
|
#define cpu_has_pse 1
|
|
#define cpu_has_tsc 1
|
|
-#define cpu_has_pae 1
|
|
#define cpu_has_pge 1
|
|
#define cpu_has_pat 1
|
|
#define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC)
|