KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active
authorPaolo Bonzini <pbonzini@redhat.com>
Sun, 27 Oct 2019 15:23:23 +0000 (16:23 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 31 Oct 2019 11:13:44 +0000 (12:13 +0100)
commit9167ab79936206118cc60e47dcb926c3489f3bd5
tree62e3c3208dadfa655c87e9917fff8e4ea2cdc7a8
parenta97b0e773e492ae319a7e981e98962a1060215f9
KVM: vmx, svm: always run with EFER.NXE=1 when shadow paging is active

VMX already does so if the host has SMEP, in order to support the combination of
CR0.WP=1 and CR4.SMEP=1.  However, it is perfectly safe to always do so, and in
fact VMX already ends up running with EFER.NXE=1 on old processors that lack the
"load EFER" controls, because it may help avoiding a slow MSR write.  Removing
all the conditionals simplifies the code.

SVM does not have similar code, but it should since recent AMD processors do
support SMEP.  So this patch also makes the code for the two vendors more similar
while fixing NPT=0, CR0.WP=1 and CR4.SMEP=1 on AMD processors.

Cc: stable@vger.kernel.org
Cc: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm.c
arch/x86/kvm/vmx/vmx.c