Skip to content

Commit 3ed43ca

Browse files
Haozhong Zhanggregkh
authored andcommitted
kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
commit 691bd4340bef49cf7e5855d06cf24444b5bf2d85 upstream. It's easier for host applications, such as QEMU, if they can always access guest MSR_IA32_BNDCFGS in VMCS, even though MPX is disabled in guest cpuid. Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 6ffa92f commit 3ed43ca

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

arch/x86/kvm/vmx.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2812,7 +2812,8 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
28122812
msr_info->data = vmcs_readl(GUEST_SYSENTER_ESP);
28132813
break;
28142814
case MSR_IA32_BNDCFGS:
2815-
if (!kvm_mpx_supported() || !guest_cpuid_has_mpx(vcpu))
2815+
if (!kvm_mpx_supported() ||
2816+
(!msr_info->host_initiated && !guest_cpuid_has_mpx(vcpu)))
28162817
return 1;
28172818
msr_info->data = vmcs_read64(GUEST_BNDCFGS);
28182819
break;
@@ -2889,7 +2890,8 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
28892890
vmcs_writel(GUEST_SYSENTER_ESP, data);
28902891
break;
28912892
case MSR_IA32_BNDCFGS:
2892-
if (!kvm_mpx_supported() || !guest_cpuid_has_mpx(vcpu))
2893+
if (!kvm_mpx_supported() ||
2894+
(!msr_info->host_initiated && !guest_cpuid_has_mpx(vcpu)))
28932895
return 1;
28942896
if (is_noncanonical_address(data & PAGE_MASK) ||
28952897
(data & MSR_IA32_BNDCFGS_RSVD))

0 commit comments

Comments
 (0)