aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/umem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/core/umem.c')
-rw-r--r--drivers/infiniband/core/umem.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index a8411232207..b645e558876 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -35,7 +35,6 @@
35#include <linux/mm.h> 35#include <linux/mm.h>
36#include <linux/dma-mapping.h> 36#include <linux/dma-mapping.h>
37#include <linux/sched.h> 37#include <linux/sched.h>
38#include <linux/export.h>
39#include <linux/hugetlb.h> 38#include <linux/hugetlb.h>
40#include <linux/dma-attrs.h> 39#include <linux/dma-attrs.h>
41#include <linux/slab.h> 40#include <linux/slab.h>
@@ -137,7 +136,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
137 136
138 down_write(&current->mm->mmap_sem); 137 down_write(&current->mm->mmap_sem);
139 138
140 locked = npages + current->mm->pinned_vm; 139 locked = npages + current->mm->locked_vm;
141 lock_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT; 140 lock_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT;
142 141
143 if ((locked > lock_limit) && !capable(CAP_IPC_LOCK)) { 142 if ((locked > lock_limit) && !capable(CAP_IPC_LOCK)) {
@@ -207,7 +206,7 @@ out:
207 __ib_umem_release(context->device, umem, 0); 206 __ib_umem_release(context->device, umem, 0);
208 kfree(umem); 207 kfree(umem);
209 } else 208 } else
210 current->mm->pinned_vm = locked; 209 current->mm->locked_vm = locked;
211 210
212 up_write(&current->mm->mmap_sem); 211 up_write(&current->mm->mmap_sem);
213 if (vma_list) 212 if (vma_list)
@@ -223,7 +222,7 @@ static void ib_umem_account(struct work_struct *work)
223 struct ib_umem *umem = container_of(work, struct ib_umem, work); 222 struct ib_umem *umem = container_of(work, struct ib_umem, work);
224 223
225 down_write(&umem->mm->mmap_sem); 224 down_write(&umem->mm->mmap_sem);
226 umem->mm->pinned_vm -= umem->diff; 225 umem->mm->locked_vm -= umem->diff;
227 up_write(&umem->mm->mmap_sem); 226 up_write(&umem->mm->mmap_sem);
228 mmput(umem->mm); 227 mmput(umem->mm);
229 kfree(umem); 228 kfree(umem);
@@ -269,7 +268,7 @@ void ib_umem_release(struct ib_umem *umem)
269 } else 268 } else
270 down_write(&mm->mmap_sem); 269 down_write(&mm->mmap_sem);
271 270
272 current->mm->pinned_vm -= diff; 271 current->mm->locked_vm -= diff;
273 up_write(&mm->mmap_sem); 272 up_write(&mm->mmap_sem);
274 mmput(mm); 273 mmput(mm);
275 kfree(umem); 274 kfree(umem);