| From 1a978d9d3e72ddfa40ac60d26301b154247ee0bc Mon Sep 17 00:00:00 2001 |
| From: Sean Christopherson <sean.j.christopherson@intel.com> |
| Date: Wed, 18 Dec 2019 13:54:46 -0800 |
| Subject: KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails |
| |
| From: Sean Christopherson <sean.j.christopherson@intel.com> |
| |
| commit 1a978d9d3e72ddfa40ac60d26301b154247ee0bc upstream. |
| |
| Call kvm_vcpu_uninit() if vcore creation fails to avoid leaking any |
| resources allocated by kvm_vcpu_init(), i.e. the vcpu->run page. |
| |
| Fixes: 371fefd6f2dc4 ("KVM: PPC: Allow book3s_hv guests to use SMT processor modes") |
| Cc: stable@vger.kernel.org |
| Reviewed-by: Greg Kurz <groug@kaod.org> |
| Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> |
| Acked-by: Paul Mackerras <paulus@ozlabs.org> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kvm/book3s_hv.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/arch/powerpc/kvm/book3s_hv.c |
| +++ b/arch/powerpc/kvm/book3s_hv.c |
| @@ -2065,7 +2065,7 @@ static struct kvm_vcpu *kvmppc_core_vcpu |
| mutex_unlock(&kvm->lock); |
| |
| if (!vcore) |
| - goto free_vcpu; |
| + goto uninit_vcpu; |
| |
| spin_lock(&vcore->lock); |
| ++vcore->num_threads; |
| @@ -2082,6 +2082,8 @@ static struct kvm_vcpu *kvmppc_core_vcpu |
| |
| return vcpu; |
| |
| +uninit_vcpu: |
| + kvm_vcpu_uninit(vcpu); |
| free_vcpu: |
| kmem_cache_free(kvm_vcpu_cache, vcpu); |
| out: |