On Sun, Feb 24, 2013 at 03:08:53PM +0100, Jan Kiszka wrote: > From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> > @@ -2390,6 +2390,21 @@ static int nested_svm_vmexit(struct vcpu_svm *svm) > return 0; > } > +static bool nested_svm_handle_init_received(struct kvm_vcpu *vcpu) > +{ > + struct vcpu_svm *svm = to_svm(vcpu); > + > + if (!is_guest_mode(vcpu) || > + !(svm->nested.intercept & (1ULL << INTERCEPT_INIT))) > + return false; > + > + svm->vmcb->control.exit_code = SVM_EXIT_INIT; > + svm->vmcb->control.exit_int_info = 0; > + nested_svm_vmexit(svm); > + > + return true; > +} [...] > + if (vcpu->arch.mp_state == KVM_MP_STATE_INIT_RECEIVED && > + kvm_x86_ops->handle_init_received(vcpu)) { > + /* nested vmexit, L1 is runnable now */ > + vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; > + return 1; > + } Hmm, looks like the INIT signal is lost after the VMEXIT. But on SVM the INIT signal is still pending an will be delivered when GIF becomes one again. Do I miss anything? Joerg -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html