summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2017-09-25 08:05:38 +0300
committerBen Skeggs <bskeggs@redhat.com>2017-10-03 09:34:10 +0300
commit77913bbcb43ac9a07a6fe849c2fd3bf85fc8bdd8 (patch)
tree3312e198a90b4b2a3f8548bd3b9e74b5f58c5a85
parent1b0e19bb0c6f6b209c6b711f47dfc81812706827 (diff)
downloadlinux-77913bbcb43ac9a07a6fe849c2fd3bf85fc8bdd8.tar.xz
drm/nouveau/mmu: flush tlbs before deleting page tables
Even though we've zeroed the PDE, the GPU may have cached the PD, so we need to flush when deleting them. Noticed while working on replacement MMU code, but a backport might be a good idea, so let's fix it in the current code too. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
index d06ad2c372bf..455da298227f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
@@ -241,6 +241,8 @@ nvkm_vm_unmap_pgt(struct nvkm_vm *vm, int big, u32 fpde, u32 lpde)
mmu->func->map_pgt(vpgd->obj, pde, vpgt->mem);
}
+ mmu->func->flush(vm);
+
nvkm_memory_del(&pgt);
}
}