--- x/virt/kvm/kvm_main.c +++ k/virt/kvm/kvm_main.c @@ -1229,7 +1229,7 @@ static struct kvm *kvm_create_vm(unsigne */ if (!try_module_get(kvm_chardev_ops.owner)) { r = -ENODEV; - goto out_err_mmu_notifier; + goto out_err_pm_notifier; } r = kvm_create_vm_debugfs(kvm, fdname); @@ -1240,6 +1240,11 @@ static struct kvm *kvm_create_vm(unsigne out_err: module_put(kvm_chardev_ops.owner); +out_err_pm_notifier: + kvm_destroy_pm_notifier(kvm); + mutex_lock(&kvm_lock); + list_del(&kvm->vm_list); + mutex_unlock(&kvm_lock); out_err_mmu_notifier: #if defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER) if (kvm->mmu_notifier.ops)