|
@@ -467,12 +467,8 @@ static struct kvm *kvm_create_vm(void)
|
|
|
if (!kvm->buses[i])
|
|
|
goto out_err;
|
|
|
}
|
|
|
- spin_lock_init(&kvm->mmu_lock);
|
|
|
-
|
|
|
- r = kvm_init_mmu_notifier(kvm);
|
|
|
- if (r)
|
|
|
- goto out_err;
|
|
|
|
|
|
+ spin_lock_init(&kvm->mmu_lock);
|
|
|
kvm->mm = current->mm;
|
|
|
atomic_inc(&kvm->mm->mm_count);
|
|
|
kvm_eventfd_init(kvm);
|
|
@@ -480,6 +476,11 @@ static struct kvm *kvm_create_vm(void)
|
|
|
mutex_init(&kvm->irq_lock);
|
|
|
mutex_init(&kvm->slots_lock);
|
|
|
atomic_set(&kvm->users_count, 1);
|
|
|
+
|
|
|
+ r = kvm_init_mmu_notifier(kvm);
|
|
|
+ if (r)
|
|
|
+ goto out_err;
|
|
|
+
|
|
|
raw_spin_lock(&kvm_lock);
|
|
|
list_add(&kvm->vm_list, &vm_list);
|
|
|
raw_spin_unlock(&kvm_lock);
|