This series eliminates usage of legacy code that is obsolete when unrestricted guest is enabled. Because unrestricted guest (Westmere) was introduced one generation later than EPT (Nehalem), KVM's initial support for EPT by necessity retained/introduced soon-to-be-legacy code for handling a guest with EPT enabled and CR0.PG/PE==0. Some of this now-legacy code/behavior wasn't correctly deprecated when KVM added support for unrestricted guest, e.g. KVM still creates and loads identity mapped IA32 page tables when the guest disables paging, even though CR0.PG is cleared in hardware. Sean Christopherson (6): KVM: VMX: don't configure RM TSS for unrestricted guest KVM: VMX: don't configure EPT identity map for unrestricted guest KVM: VMX: remove CR0.WP from ..._ALWAYS_ON_UNRESTRICTED_GUEST KVM: VMX: don't force CR4.PAE/PSE for unrestricted guest KVM: VMX: give unrestricted guest full control of CR3 KVM: VMX: WARN on a MOV CR3 exit w/ unrestricted guest arch/x86/kvm/vmx.c | 57 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 21 deletions(-)