fb53ca5547
libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch qemu-xen-upstream-qdisk-cache-unsafe.patch - libxl: introduce an option for disabling the non-O_DIRECT workaround recognize direct-io-safe in domU.cfg diskspec libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch - fate#316071: add discard support for file backed storage (qdisk) update patch to allow more values in overloaded ->readwrite member - bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d Interrupt Remapping engines can be evaded by native NMI interrupts 537b5e50-VT-d-apply-quirks-at-device-setup-time-rather-than-only-at-boot.patch 537b5e79-VT-d-extend-error-report-masking-workaround-to-newer-chipsets.patch - Upstream patches from Jan 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch - Update README.SuSE with information on the toolstack change - fate#316071: add discard support for file backed storage (qdisk) update to recognize option discard/no-discard instead of discard=0,1 to match upstream change OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=316
32 lines
1.0 KiB
Diff
32 lines
1.0 KiB
Diff
# Commit 99c03bc6a1f8c6722926d2db781ece045f9d09ae
|
|
# Date 2014-05-12 11:59:19 +0200
|
|
# Author Edmund H White <edmund.h.white@intel.com>
|
|
# Committer Jan Beulich <jbeulich@suse.com>
|
|
Nested VMX: load current_vmcs only when it exists
|
|
|
|
There may not have valid vmcs on current CPU. So only load it when it exists.
|
|
|
|
This original fixing is from Edmud <edmund.h.white@intel.com>.
|
|
|
|
Signed-off-by: Edmund H White <edmund.h.white@intel.com>
|
|
Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
|
|
Acked-by: Kevin Tian <kevin.tian@intel.com>
|
|
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
|
|
|
--- a/xen/arch/x86/hvm/vmx/vmcs.c
|
|
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
|
|
@@ -828,8 +828,12 @@ void virtual_vmcs_enter(void *vvmcs)
|
|
|
|
void virtual_vmcs_exit(void *vvmcs)
|
|
{
|
|
+ struct vmcs_struct *cur = this_cpu(current_vmcs);
|
|
+
|
|
__vmpclear(pfn_to_paddr(domain_page_map_to_mfn(vvmcs)));
|
|
- __vmptrld(virt_to_maddr(this_cpu(current_vmcs)));
|
|
+ if ( cur )
|
|
+ __vmptrld(virt_to_maddr(cur));
|
|
+
|
|
}
|
|
|
|
u64 virtual_vmcs_vmread(void *vvmcs, u32 vmcs_encoding)
|