KVM: SVM: leave halted state on vmexit
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 23 Apr 2020 17:13:09 +0000 (13:13 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 13 May 2020 16:14:22 +0000 (12:14 -0400)
Similar to VMX, we need to leave the halted state when performing a vmexit.
Failure to do so will cause a hang after vmexit.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/nested.c

index 7a724ea..2a0f1b0 100644 (file)
@@ -473,6 +473,9 @@ int nested_svm_vmexit(struct vcpu_svm *svm)
        leave_guest_mode(&svm->vcpu);
        svm->nested.vmcb = 0;
 
+       /* in case we halted in L2 */
+       svm->vcpu.arch.mp_state = KVM_MP_STATE_RUNNABLE;
+
        /* Give the current vmcb to the guest */
        disable_gif(svm);