Two fixes for 5-level nested EPT bugs with a 100% fatality rate, with a patch to enable 5-level EPT in L1 and additional clean up on top (mostly renames of functions/variables that caused me no end of confusion when trying to figure out what was broken). Tested fixed kernels at L0, L1 and L2, with most combinations of EPT, shadow paging, 4-level and 5-level. EPT kvm-unit-tests runs clean in L0. Nothing too stressful, but the bugs caused L2 to hang on the very first instruction, so being able to boot is a marked improvement. Sean Christopherson (7): KVM: nVMX: Use correct root level for nested EPT shadow page tables KVM: x86/mmu: Fix struct guest_walker arrays for 5-level paging KVM: nVMX: Allow L1 to use 5-level page walks for nested EPT KVM: nVMX: Rename nested_ept_get_cr3() to nested_ept_get_eptp() KVM: nVMX: Rename EPTP validity helper and associated variables KVM: x86/mmu: Rename kvm_mmu->get_cr3() to ->get_guest_cr3_or_eptp() KVM: nVMX: Drop unnecessary check on ept caps for execute-only arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/include/asm/vmx.h | 12 +++++++ arch/x86/kvm/mmu/mmu.c | 35 ++++++++++---------- arch/x86/kvm/mmu/paging_tmpl.h | 6 ++-- arch/x86/kvm/svm.c | 10 +++--- arch/x86/kvm/vmx/nested.c | 58 ++++++++++++++++++++------------- arch/x86/kvm/vmx/nested.h | 4 +-- arch/x86/kvm/vmx/vmx.c | 2 ++ arch/x86/kvm/x86.c | 2 +- 9 files changed, 79 insertions(+), 52 deletions(-) -- 2.24.1