From: Linus Torvalds Date: Tue, 12 Nov 2019 21:19:15 +0000 (-0800) Subject: Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm X-Git-Tag: v5.4-rc8~26 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c5bd25bf42effd194d4b0b43895c42b374e620b;p=platform%2Fkernel%2Flinux-rpi.git Merge tag 'for-linus' of git://git./virt/kvm/kvm Pull kvm fixes from Paolo Bonzini: "Fix unwinding of KVM_CREATE_VM failure, VT-d posted interrupts, DAX/ZONE_DEVICE, and module unload/reload" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved KVM: VMX: Introduce pi_is_pir_empty() helper KVM: VMX: Do not change PID.NDST when loading a blocked vCPU KVM: VMX: Consider PID.PIR to determine if vCPU has pending interrupts KVM: VMX: Fix comment to specify PID.ON instead of PIR.ON KVM: X86: Fix initialization of MSR lists KVM: fix placement of refcount initialization KVM: Fix NULL-ptr deref after kvm_create_vm fails --- 8c5bd25bf42effd194d4b0b43895c42b374e620b diff --cc virt/kvm/kvm_main.c index 4aab354,0dac149..524cff2 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@@ -693,17 -700,8 +718,12 @@@ static struct kvm *kvm_create_vm(unsign INIT_HLIST_HEAD(&kvm->irq_ack_notifier_list); #endif - if (init_srcu_struct(&kvm->srcu)) - goto out_err_no_srcu; - if (init_srcu_struct(&kvm->irq_srcu)) - goto out_err_no_irq_srcu; - r = kvm_init_mmu_notifier(kvm); if (r) + goto out_err_no_mmu_notifier; + + r = kvm_arch_post_init_vm(kvm); + if (r) goto out_err; mutex_lock(&kvm_lock); @@@ -715,15 -713,6 +735,11 @@@ return kvm; out_err: +#if defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER) + if (kvm->mmu_notifier.ops) + mmu_notifier_unregister(&kvm->mmu_notifier, current->mm); +#endif +out_err_no_mmu_notifier: - cleanup_srcu_struct(&kvm->irq_srcu); - out_err_no_irq_srcu: - cleanup_srcu_struct(&kvm->srcu); - out_err_no_srcu: hardware_disable_all(); out_err_no_disable: kvm_arch_destroy_vm(kvm);