Commit 780194b1 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/vm: make each vma take a reference on its parent vm

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 51a506c0
...@@ -320,7 +320,8 @@ nouveau_vm_get(struct nouveau_vm *vm, u64 size, u32 page_shift, ...@@ -320,7 +320,8 @@ nouveau_vm_get(struct nouveau_vm *vm, u64 size, u32 page_shift,
} }
mutex_unlock(&nv_subdev(vmm)->mutex); mutex_unlock(&nv_subdev(vmm)->mutex);
vma->vm = vm; vma->vm = NULL;
nouveau_vm_ref(vm, &vma->vm, NULL);
vma->offset = (u64)vma->node->offset << 12; vma->offset = (u64)vma->node->offset << 12;
vma->access = access; vma->access = access;
return 0; return 0;
...@@ -342,6 +343,8 @@ nouveau_vm_put(struct nouveau_vma *vma) ...@@ -342,6 +343,8 @@ nouveau_vm_put(struct nouveau_vma *vma)
nouveau_vm_unmap_pgt(vm, vma->node->type != vmm->spg_shift, fpde, lpde); nouveau_vm_unmap_pgt(vm, vma->node->type != vmm->spg_shift, fpde, lpde);
nouveau_mm_free(&vm->mm, &vma->node); nouveau_mm_free(&vm->mm, &vma->node);
mutex_unlock(&nv_subdev(vmm)->mutex); mutex_unlock(&nv_subdev(vmm)->mutex);
nouveau_vm_ref(NULL, &vma->vm, NULL);
} }
int int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment