|
@@ -119,7 +119,6 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
|
|
|
umem->length = size;
|
|
|
umem->address = addr;
|
|
|
umem->page_shift = PAGE_SHIFT;
|
|
|
- umem->pid = get_task_pid(current, PIDTYPE_PID);
|
|
|
/*
|
|
|
* We ask for writable memory if any of the following
|
|
|
* access flags are set. "Local write" and "remote write"
|
|
@@ -132,7 +131,6 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
|
|
|
IB_ACCESS_REMOTE_ATOMIC | IB_ACCESS_MW_BIND));
|
|
|
|
|
|
if (access & IB_ACCESS_ON_DEMAND) {
|
|
|
- put_pid(umem->pid);
|
|
|
ret = ib_umem_odp_get(context, umem, access);
|
|
|
if (ret) {
|
|
|
kfree(umem);
|
|
@@ -148,7 +146,6 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
|
|
|
|
|
|
page_list = (struct page **) __get_free_page(GFP_KERNEL);
|
|
|
if (!page_list) {
|
|
|
- put_pid(umem->pid);
|
|
|
kfree(umem);
|
|
|
return ERR_PTR(-ENOMEM);
|
|
|
}
|
|
@@ -231,7 +228,6 @@ out:
|
|
|
if (ret < 0) {
|
|
|
if (need_release)
|
|
|
__ib_umem_release(context->device, umem, 0);
|
|
|
- put_pid(umem->pid);
|
|
|
kfree(umem);
|
|
|
} else
|
|
|
current->mm->pinned_vm = locked;
|
|
@@ -274,8 +270,7 @@ void ib_umem_release(struct ib_umem *umem)
|
|
|
|
|
|
__ib_umem_release(umem->context->device, umem, 1);
|
|
|
|
|
|
- task = get_pid_task(umem->pid, PIDTYPE_PID);
|
|
|
- put_pid(umem->pid);
|
|
|
+ task = get_pid_task(umem->context->tgid, PIDTYPE_PID);
|
|
|
if (!task)
|
|
|
goto out;
|
|
|
mm = get_task_mm(task);
|