3f55414718
- Upstream or pending upstream patches from Jan 25587-fix-off-by-one-parsing-error.patch 25616-x86-MCi_CTL-default.patch 25617-vtd-qinval-addr.patch 25688-x86-nr_irqs_gsi.patch - bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m teardown host DoS vulnerability CVE-2012-3433-xsa11.patch - bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO emulation DoS 25682-x86-inconsistent-io-state.patch - bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't check the size of the bzip2 or lzma compressed kernel, leading to denial of service 25589-pygrub-size-limits.patch - Make it build with latest TeXLive 2012 with new package layout OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=196
48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
# HG changeset patch
|
|
# User Keir Fraser <keir@xen.org>
|
|
# Date 1307691167 -3600
|
|
# Node ID 2ef6bbee50371e1135236035ed1a9a7b8748e09f
|
|
# Parent 0a29c8c3ddf7395ea8e68c5f4cd8633023490022
|
|
x86/vmx: Small fixes to MSR_IA32_VMX_PROCBASED_CTLS feature probing.
|
|
|
|
Should check for VIRTUAL_INTR_PENDING as we unconditionally make use
|
|
of it. Also check for CR8 exiting unconditionally on x86/64, as this
|
|
is of use to nestedvmx, and every 64-bit cpu should support it.
|
|
|
|
Signed-off-by: Eddie Dong <eddie.dong@intel.com>
|
|
Signed-off-by: Keir Fraser <keir@xen.org>
|
|
|
|
Index: xen-4.1.3-testing/xen/arch/x86/hvm/vmx/vmcs.c
|
|
===================================================================
|
|
--- xen-4.1.3-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
|
|
+++ xen-4.1.3-testing/xen/arch/x86/hvm/vmx/vmcs.c
|
|
@@ -143,6 +143,11 @@ static int vmx_init_vmcs_config(void)
|
|
MSR_IA32_VMX_PINBASED_CTLS, &mismatch);
|
|
|
|
min = (CPU_BASED_HLT_EXITING |
|
|
+ CPU_BASED_VIRTUAL_INTR_PENDING |
|
|
+#ifdef __x86_64__
|
|
+ CPU_BASED_CR8_LOAD_EXITING |
|
|
+ CPU_BASED_CR8_STORE_EXITING |
|
|
+#endif
|
|
CPU_BASED_INVLPG_EXITING |
|
|
CPU_BASED_CR3_LOAD_EXITING |
|
|
CPU_BASED_CR3_STORE_EXITING |
|
|
@@ -161,13 +166,9 @@ static int vmx_init_vmcs_config(void)
|
|
MSR_IA32_VMX_PROCBASED_CTLS, &mismatch);
|
|
_vmx_cpu_based_exec_control &= ~CPU_BASED_RDTSC_EXITING;
|
|
#ifdef __x86_64__
|
|
- if ( !(_vmx_cpu_based_exec_control & CPU_BASED_TPR_SHADOW) )
|
|
- {
|
|
- min |= CPU_BASED_CR8_LOAD_EXITING | CPU_BASED_CR8_STORE_EXITING;
|
|
- _vmx_cpu_based_exec_control = adjust_vmx_controls(
|
|
- "CPU-Based Exec Control", min, opt,
|
|
- MSR_IA32_VMX_PROCBASED_CTLS, &mismatch);
|
|
- }
|
|
+ if ( _vmx_cpu_based_exec_control & CPU_BASED_TPR_SHADOW )
|
|
+ _vmx_cpu_based_exec_control &=
|
|
+ ~(CPU_BASED_CR8_LOAD_EXITING | CPU_BASED_CR8_STORE_EXITING);
|
|
#endif
|
|
|
|
if ( _vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS )
|