From: Miaoqian Lin Date: Tue, 20 Dec 2022 12:11:39 +0000 (+0400) Subject: RDMA/erdma: Fix refcount leak in erdma_mmap X-Git-Tag: v6.1.21~1033 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8372207b009d6abdd60bb05624640bd86386599f;p=platform%2Fkernel%2Flinux-starfive.git RDMA/erdma: Fix refcount leak in erdma_mmap [ Upstream commit ee84146c05ad2316b9a7222d0ec4413e0bf30eeb ] rdma_user_mmap_entry_get() take reference, we should release it when not need anymore, add the missing rdma_user_mmap_entry_put() in the error path to fix it. Fixes: 155055771704 ("RDMA/erdma: Add verbs implementation") Signed-off-by: Miaoqian Lin Link: https://lore.kernel.org/r/20221220121139.1540564-1-linmq006@gmail.com Acked-by: Cheng Xu Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin --- diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.c b/drivers/infiniband/hw/erdma/erdma_verbs.c index 62be98e..19c69ea 100644 --- a/drivers/infiniband/hw/erdma/erdma_verbs.c +++ b/drivers/infiniband/hw/erdma/erdma_verbs.c @@ -1089,12 +1089,14 @@ int erdma_mmap(struct ib_ucontext *ctx, struct vm_area_struct *vma) prot = pgprot_device(vma->vm_page_prot); break; default: - return -EINVAL; + err = -EINVAL; + goto put_entry; } err = rdma_user_mmap_io(ctx, vma, PFN_DOWN(entry->address), PAGE_SIZE, prot, rdma_entry); +put_entry: rdma_user_mmap_entry_put(rdma_entry); return err; }