Patch "kvm: x86: Guest BNDCFGS requires guest MPX support" has been added to the 4.12-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
kvm: x86: Guest BNDCFGS requires guest MPX support
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
kvm-x86-guest-bndcfgs-requires-guest-mpx-support.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
4439af9f911ae0243ffe4e2dfc12bace49605d8bMon Sep 17 00:00:00 2001
From: Jim Mattson <[email protected]>
Date: Wed, 24 May 2017 10:49:25 -0700
Subject: kvm: x86: Guest BNDCFGS requires guest MPX support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Jim Mattson <[email protected]>
commit 4439af9f911ae0243ffe4e2dfc12bace49605d8b upstream.
The BNDCFGS MSR should only be exposed to the guest if the guest supports MPX. (cf. the TSC_AUX MSR and RDTSCP.)
--- arch/x86/kvm/cpuid.h | 8 ++++++++ arch/x86/kvm/vmx.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-)
arch/x86/kvm/cpuid.h +8 -0
@@ -144,6 +144,14 @@ static inline bool guest_cpuid_has_rtm(sreturn best && (best->ebx &bit (X86_FEATURE_RTM )); } +static inline bool guest_cpuid_has_mpx (struct kvm_vcpu *vcpu) +{ +struct kvm_cpuid_entry2 *best; + + best =kvm_find_cpuid_entry (vcpu,7 ,0 ); +return best && (best->ebx &bit (X86_FEATURE_MPX )); +} +static inline bool guest_cpuid_has_rdtscp (struct kvm_vcpu *vcpu) {struct kvm_cpuid_entry2 *best;
arch/x86/kvm/vmx.c +2 -2
@@ -3195,7 +3195,7 @@ static int vmx_get_msr(struct kvm_vcpu * msr_info->data =vmcs_readl (GUEST_SYSENTER_ESP );break ;case MSR_IA32_BNDCFGS : -if (!kvm_mpx_supported ()) +if (!kvm_mpx_supported () || !guest_cpuid_has_mpx (vcpu))return 1 ; msr_info->data =vmcs_read64 (GUEST_BNDCFGS );break ;
@@ -3277,7 +3277,7 @@ static int vmx_set_msr(struct kvm_vcpu *vmcs_writel (GUEST_SYSENTER_ESP , data);break ;case MSR_IA32_BNDCFGS : -if (!kvm_mpx_supported ()) +if (!kvm_mpx_supported () || !guest_cpuid_has_mpx (vcpu))return 1 ;vmcs_write64 (GUEST_BNDCFGS , data);break ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/kvm-x86-guest-bndcfgs-requires-guest-mpx-support.patch queue-4.12/kvm-vmx-check-value-written-to-ia32_bndcfgs.patch queue-4.12/kvm-vmx-do-not-disable-intercepts-for-bndcfgs.patch