KVM: nVMX: fix lifetime issues for vmcs02
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 17 Jul 2014 10:25:16 +0000 (12:25 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 20 Nov 2016 01:01:26 +0000 (01:01 +0000)
commitbcad1c3975a8b59d2695c5f1dc85aba24330a51f
tree7bdf76e5ddbe7ab6ee9cfce8aee2b2f8df9346e3
parentac5ec0900b43db086358fec29cdd9604c9edca54
KVM: nVMX: fix lifetime issues for vmcs02

commit 4fa7734c62cdd8c07edd54fa5a5e91482273071a upstream.

free_nested needs the loaded_vmcs to be valid if it is a vmcs02, in
order to detach it from the shadow vmcs.  However, this is not
available anymore after commit 26a865f4aa8e (KVM: VMX: fix use after
free of vmx->loaded_vmcs, 2014-01-03).

Revert that patch, and fix its problem by forcing a vmcs01 as the
active VMCS before freeing all the nested VMX state.

Reported-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Tested-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/kvm/vmx.c