Skip to content

Commit ec877b0

Browse files
jsmattsonjrgregkh
authored andcommitted
kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
[ Upstream commit 427890a ] See the SDM, volume 3, section 4.4.1: If PAE paging would be in use following an execution of MOV to CR0 or MOV to CR4 (see Section 4.1.1) and the instruction is modifying any of CR0.CD, CR0.NW, CR0.PG, CR4.PAE, CR4.PGE, CR4.PSE, or CR4.SMEP; then the PDPTEs are loaded from the address in CR3. Fixes: 0be0226 ("KVM: MMU: fix SMAP virtualization") Cc: Xiao Guangrong <guangrong.xiao@linux.intel.com> Signed-off-by: Jim Mattson <jmattson@google.com> Reviewed-by: Peter Shier <pshier@google.com> Reviewed-by: Oliver Upton <oupton@google.com> Message-Id: <20200817181655.3716509-2-jmattson@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent d200964 commit ec877b0

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

arch/x86/kvm/x86.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
857857
{
858858
unsigned long old_cr4 = kvm_read_cr4(vcpu);
859859
unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE |
860-
X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_PKE;
860+
X86_CR4_SMEP | X86_CR4_PKE;
861861

862862
if (kvm_valid_cr4(vcpu, cr4))
863863
return 1;

0 commit comments

Comments
 (0)