Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.1
xen
5cac6cba-vmx-Fixup-removals-of-MSR-load-save-li...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch of Package xen
References: bsc#1124560 # Commit e28c0ee3356f52f589bbae54e89aaed25c1f599d # Date 2019-04-09 10:58:18 +0100 # Author Igor Druzhinin <igor.druzhinin@citrix.com> # Committer Andrew Cooper <andrew.cooper3@citrix.com> x86/vmx: Fixup removals of MSR load/save list entries Commit 540d5422 ("x86/vmx: Support removing MSRs from the host/guest load/save lists") introduced infrastructure finally exposed by commit fd32dcfe ("x86/vmx: Don't leak EFER.NXE into guest context") that led to a functional regression on Harpertown and earlier cores (Gen 1 VT-x) due to MSR count being incorrectly set in VMCS. As the result, as soon as guest EFER becomes equal to Xen EFER (which eventually happens in almost every 64-bit VM) and its MSR entry is supposed to be removed, a stale version of EFER is loaded into a guest instead causing almost immediate guest failure. Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Kevin Tian <kevin.tian@intel.com> --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -1490,15 +1490,15 @@ int vmx_del_msr(struct vcpu *v, uint32_t switch ( type ) { case VMX_MSR_HOST: - __vmwrite(VM_EXIT_MSR_LOAD_COUNT, vmx->host_msr_count--); + __vmwrite(VM_EXIT_MSR_LOAD_COUNT, --vmx->host_msr_count); break; case VMX_MSR_GUEST: - __vmwrite(VM_EXIT_MSR_STORE_COUNT, vmx->msr_save_count--); + __vmwrite(VM_EXIT_MSR_STORE_COUNT, --vmx->msr_save_count); /* Fallthrough */ case VMX_MSR_GUEST_LOADONLY: - __vmwrite(VM_ENTRY_MSR_LOAD_COUNT, vmx->msr_load_count--); + __vmwrite(VM_ENTRY_MSR_LOAD_COUNT, --vmx->msr_load_count); break; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor