lkml.org 
[lkml]   [2020]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 14/64] IB/umem: fix reference count leak in ib_umem_odp_get()
    Date
    From: Yang Yingliang <yangyingliang@huawei.com>

    Add missing mmput() on error path to avoid ref-count leak.

    This problem is introduced by 79bb5b7ee177 ("RDMA/umem: Fix missing mmap_sem in get umem ODP call")
    and resolved by f27a0d50a4bc ("RDMA/umem: Use umem->owning_mm inside ODP").
    So, it's only needed in stable-4.14 and stable-4.19.

    Fixes: 79bb5b7ee177 ("RDMA/umem: Fix missing mmap_sem in get umem ODP call")
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/infiniband/core/umem_odp.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/infiniband/core/umem_odp.c
    +++ b/drivers/infiniband/core/umem_odp.c
    @@ -306,7 +306,8 @@ int ib_umem_odp_get(struct ib_ucontext *
    vma = find_vma(mm, ib_umem_start(umem));
    if (!vma || !is_vm_hugetlb_page(vma)) {
    up_read(&mm->mmap_sem);
    - return -EINVAL;
    + ret_val = -EINVAL;
    + goto out_mm;
    }
    h = hstate_vma(vma);
    umem->page_shift = huge_page_shift(h);

    \
     
     \ /
      Last update: 2020-07-27 16:09    [W:4.108 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site