diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index f7d6c8f..b26472a 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -671,12 +671,16 @@ static struct kvm *kvm_create_vm(unsigned long type) r = kvm_create_vm_debugfs(kvm); if (r) - goto out_err; + goto out_mmu; preempt_notifier_inc(); return kvm; +out_mmu: +#if defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER) + mmu_notifier_unregister(&kvm->mmu_notifier, kvm->mm); +#endif out_err: cleanup_srcu_struct(&kvm->irq_srcu); out_err_no_irq_srcu: