kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
authorJim Mattson <jmattson@google.com>
Mon, 17 Aug 2020 18:16:55 +0000 (11:16 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 17 Aug 2020 19:23:50 +0000 (15:23 -0400)
commit427890aff8558eb4326e723835e0eae0e6fe3102
tree23a8784def4552672ad18ee100fa373f2abbb5a0
parent19cf4b7eefc3040192bccb10c322e4c831bb0eb0
kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode

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: 0be0226f07d14 ("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>
arch/x86/kvm/x86.c