• Lidong Chen's avatar
    IB/umem: Use the correct mm during ib_umem_release · 8e907ed4
    Lidong Chen authored
    User-space may invoke ibv_reg_mr and ibv_dereg_mr in different threads.
    
    If ibv_dereg_mr is called after the thread which invoked ibv_reg_mr has
    exited, get_pid_task will return NULL and ib_umem_release will not
    decrease mm->pinned_vm.
    
    Instead of using threads to locate the mm, use the overall tgid from the
    ib_ucontext struct instead. This matches the behavior of ODP and
    disassociate in handling the mm of the process that called ibv_reg_mr.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 87773dd5 ("IB: ib_umem_release() should decrement mm->pinned_vm from ib_umem_get")
    Signed-off-by: default avatarLidong Chen <lidongchen@tencent.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    8e907ed4
umem.c 8.9 KB