KVM: x86: cleanup CR3 reserved bits checks
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 13 Nov 2020 13:30:38 +0000 (08:30 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Feb 2021 10:02:24 +0000 (11:02 +0100)
commit2aba53830f5d02dcd0bb74a00c8b8023df9d1398
tree001196d15e6a7fef203ca85676a6f6873121fd75
parente624efe36eb6a111129f12c5c33d5eaa901a67ef
KVM: x86: cleanup CR3 reserved bits checks

[ Upstream commit c1c35cf78bfab31b8cb455259524395c9e4c7cd6 ]

If not in long mode, the low bits of CR3 are reserved but not enforced to
be zero, so remove those checks.  If in long mode, however, the MBZ bits
extend down to the highest physical address bit of the guest, excluding
the encryption bit.

Make the checks consistent with the above, and match them between
nested_vmcb_checks and KVM_SET_SREGS.

Cc: stable@vger.kernel.org
Fixes: 761e41693465 ("KVM: nSVM: Check that MBZ bits in CR3 and CR4 are not set on vmrun of nested guests")
Fixes: a780a3ea6282 ("KVM: X86: Fix reserved bits check for MOV to CR3")
Reviewed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kvm/svm/nested.c
arch/x86/kvm/svm/svm.h
arch/x86/kvm/x86.c