Fix for a brutal segment caching bug that manifested as random nested VM-Enter failures when running with unrestricted guest disabled. A few more bug fixes and cleanups for stuff found by inspection when hunting down the caching issue. v2: - Rebased to kvm/queue, commit e1ba1a15af73 ("KVM: SVM: Enable INVPCID feature on AMD"). Sean Christopherson (7): KVM: nVMX: Reset the segment cache when stuffing guest segs KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails KVM: nVMX: Explicitly check for valid guest state for !unrestricted guest KVM: nVMX: Move free_nested() below vmx_switch_vmcs() KVM: nVMX: Ensure vmcs01 is the loaded VMCS when freeing nested state KVM: nVMX: Drop redundant VMCS switch and free_nested() call KVM: nVMX: WARN on attempt to switch the currently loaded VMCS arch/x86/kvm/vmx/nested.c | 103 ++++++++++++++++++++------------------ arch/x86/kvm/vmx/vmx.c | 8 +-- arch/x86/kvm/vmx/vmx.h | 9 ++++ 3 files changed, 65 insertions(+), 55 deletions(-) -- 2.28.0