]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
authorJim Mattson <jmattson@google.com>
Mon, 17 Aug 2020 18:16:54 +0000 (11:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Aug 2020 09:42:19 +0000 (11:42 +0200)
commit3ce5771abb96c64d55e8480425a4707f2df8d863
tree876c86e140eec8c7fbf2a46d1d7b89650df58f16
parent374c3b5a7775c0dad89a8f7be1515d7c9cda514b
kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode

[ Upstream commit cb957adb4ea422bd758568df5b2478ea3bb34f35 ]

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: b9baba8614890 ("KVM, pkeys: expose CPUID/CR4 to guest")
Cc: Huaitong Han <huaitong.han@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-1-jmattson@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kvm/x86.c