Files
linux/drivers/infiniband/core
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
..
2015-06-12 14:49:18 -04:00
2015-05-05 13:21:27 -04:00
2016-01-19 15:25:45 -05:00
2018-04-30 13:07:28 -04:00
2016-05-13 13:37:18 -04:00
2016-03-03 10:20:25 -05:00
2018-02-28 12:55:03 -07:00
2017-08-31 08:35:09 -04:00
2018-03-29 13:42:29 -06:00
2016-03-03 10:20:25 -05:00