linux/drivers/infiniband
Lidong Chen 8e907ed488 IB/umem: Use the correct mm during ib_umem_release
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: 87773dd56d ("IB: ib_umem_release() should decrement mm->pinned_vm from ib_umem_get")
Signed-off-by: Lidong Chen <lidongchen@tencent.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-05-15 17:09:10 -06:00
..
core IB/umem: Use the correct mm during ib_umem_release 2018-05-15 17:09:10 -06:00
hw iw_cxgb4: Fix an error handling path in 'c4iw_get_dma_mr()' 2018-05-09 10:45:19 -04:00
sw nvmet,rxe: defer ip datagram sending to tasklet 2018-05-09 10:39:51 -04:00
ulp IB: remove redundant INFINIBAND kconfig dependencies 2018-05-09 08:51:03 -04:00
Kconfig IB: make INFINIBAND_ADDR_TRANS configurable 2018-04-27 11:15:44 -04:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00