aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBen Skeggs2017-11-01 03:56:19 +1000
committerBen Skeggs2017-11-02 13:32:31 +1000
commit3a314f747ba5b4cca22a36603768c176d1761afd (patch)
tree0b17f24fd1a0c58a1f2fe11d0462844b5ec7a3f9 /drivers
parent2cabefcbd097e27def6d29d52d5d2cf8797c11e4 (diff)
drm/nouveau: remove explicit unmaps
If the VMA is being deleted, we don't need to explicity unmap first anymore. The MMU code will automatically merge the operations into a single page tree walk. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c1
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_mem.c10
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_vmm.c4
3 files changed, 3 insertions, 12 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index d89f3e700baf..f4545773756a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1414,7 +1414,6 @@ nouveau_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *reg)
if (!mem->bar_vma.node)
return;
- nvkm_vm_unmap(&mem->bar_vma);
nvkm_vm_put(&mem->bar_vma);
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
index 70fbe5e72b55..17c6efb0ebec 100644
--- a/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -36,14 +36,8 @@ nouveau_mem_map(struct nouveau_mem *mem,
void
nouveau_mem_fini(struct nouveau_mem *mem)
{
- if (mem->vma[1].node) {
- nvkm_vm_unmap(&mem->vma[1]);
- nvkm_vm_put(&mem->vma[1]);
- }
- if (mem->vma[0].node) {
- nvkm_vm_unmap(&mem->vma[0]);
- nvkm_vm_put(&mem->vma[0]);
- }
+ nvkm_vm_put(&mem->vma[1]);
+ nvkm_vm_put(&mem->vma[0]);
}
int
diff --git a/drivers/gpu/drm/nouveau/nouveau_vmm.c b/drivers/gpu/drm/nouveau/nouveau_vmm.c
index 855d549e17cf..6dc14f92b988 100644
--- a/drivers/gpu/drm/nouveau/nouveau_vmm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_vmm.c
@@ -61,10 +61,8 @@ nouveau_vma_del(struct nouveau_vma **pvma)
{
struct nouveau_vma *vma = *pvma;
if (vma && --vma->refs <= 0) {
- if (likely(vma->addr != ~0ULL)) {
- nouveau_vma_unmap(vma);
+ if (likely(vma->addr != ~0ULL))
nvkm_vm_put(&vma->_vma);
- }
list_del(&vma->head);
*pvma = NULL;
kfree(*pvma);