From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabiano Rosas Date: Mon, 24 Jan 2022 22:08:03 +0000 Subject: [PATCH v2 4/4] KVM: PPC: Decrement module refcount if init_vm fails Message-Id: <20220124220803.1011673-5-farosas@linux.ibm.com> List-Id: References: <20220124220803.1011673-1-farosas@linux.ibm.com> In-Reply-To: <20220124220803.1011673-1-farosas@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org, npiggin@gmail.com, aik@ozlabs.ru We increment the reference count for KVM-HV/PR before the call to kvmppc_core_init_vm. If that function fails we need to decrement the refcount. Signed-off-by: Fabiano Rosas --- Caught this while testing Nick's LPID patches by looking at /sys/module/kvm_hv/refcnt --- arch/powerpc/kvm/powerpc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index 2ad0ccd202d5..4285d0eac900 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c @@ -431,6 +431,8 @@ int kvm_arch_check_processor_compat(void *opaque) int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) { struct kvmppc_ops *kvm_ops = NULL; + int r; + /* * if we have both HV and PR enabled, default is HV */ @@ -456,7 +458,10 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) return -ENOENT; kvm->arch.kvm_ops = kvm_ops; - return kvmppc_core_init_vm(kvm); + r = kvmppc_core_init_vm(kvm); + if (r) + module_put(kvm->arch.kvm_ops->owner); + return r; err_out: return -EINVAL; } -- 2.34.1