From 26e5215fdc6cf7b5a8b1269134095abbb7338b3c Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 20 Nov 2007 15:30:24 +0200 Subject: KVM: Split vcpu creation to avoid vcpu_load() before preemption setup Split kvm_arch_vcpu_create() into kvm_arch_vcpu_create() and kvm_arch_vcpu_setup(), enabling preemption notification between the two. This mean that we can now do vcpu_load() within kvm_arch_vcpu_setup(). Signed-off-by: Avi Kivity --- drivers/kvm/kvm_main.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'drivers/kvm/kvm_main.c') diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 9dd6ad3c6c7b..7939b5c9a4b4 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -769,6 +769,10 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, int n) preempt_notifier_init(&vcpu->preempt_notifier, &kvm_preempt_ops); + r = kvm_arch_vcpu_setup(vcpu); + if (r) + goto vcpu_destroy; + mutex_lock(&kvm->lock); if (kvm->vcpus[n]) { r = -EEXIST; -- cgit v1.2.3