| From 031b91a5fe6f1ce61b7617614ddde9ed61e252be Mon Sep 17 00:00:00 2001 |
| From: Sean Christopherson <seanjc@google.com> |
| Date: Wed, 3 Feb 2021 16:01:06 -0800 |
| Subject: KVM: x86: Set so called 'reserved CR3 bits in LM mask' at vCPU reset |
| |
| From: Sean Christopherson <seanjc@google.com> |
| |
| commit 031b91a5fe6f1ce61b7617614ddde9ed61e252be upstream. |
| |
| Set cr3_lm_rsvd_bits, which is effectively an invalid GPA mask, at vCPU |
| reset. The reserved bits check needs to be done even if userspace never |
| configures the guest's CPUID model. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: 0107973a80ad ("KVM: x86: Introduce cr3_lm_rsvd_bits in kvm_vcpu_arch") |
| Signed-off-by: Sean Christopherson <seanjc@google.com> |
| Message-Id: <20210204000117.3303214-2-seanjc@google.com> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/kvm/x86.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/arch/x86/kvm/x86.c |
| +++ b/arch/x86/kvm/x86.c |
| @@ -9915,6 +9915,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu |
| fx_init(vcpu); |
| |
| vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu); |
| + vcpu->arch.cr3_lm_rsvd_bits = rsvd_bits(cpuid_maxphyaddr(vcpu), 63); |
| |
| vcpu->arch.pat = MSR_IA32_CR_PAT_DEFAULT; |
| |