Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

IB/core: Fix mismatch between locked and pinned pages

Commit bc3e53f682d9 ("mm: distinguish between mlocked and pinned
pages") introduced a separate counter for pinned pages and used it in
the IB stack. However, in ib_umem_get() the pinned counter is
incremented, but ib_umem_release() wrongly decrements the locked
counter. Fix this.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Christoph Lameter <cl@linux.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>

authored by

Yishai Hadas and committed by
Roland Dreier
c4870eb8 c3bccbfb

+1 -1
+1 -1
drivers/infiniband/core/umem.c
··· 269 269 } else 270 270 down_write(&mm->mmap_sem); 271 271 272 - current->mm->locked_vm -= diff; 272 + current->mm->pinned_vm -= diff; 273 273 up_write(&mm->mmap_sem); 274 274 mmput(mm); 275 275 kfree(umem);