diff options
| author | Ben Skeggs <[email protected]> | 2017-09-25 15:05:38 +1000 |
|---|---|---|
| committer | Ben Skeggs <[email protected]> | 2017-10-03 16:34:10 +1000 |
| commit | 77913bbcb43ac9a07a6fe849c2fd3bf85fc8bdd8 (patch) | |
| tree | 3312e198a90b4b2a3f8548bd3b9e74b5f58c5a85 | |
| parent | 1b0e19bb0c6f6b209c6b711f47dfc81812706827 (diff) | |
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 <[email protected]>
Cc: [email protected]
| -rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 2 |
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); } } |