drm/nv50-nvc0: make sure vma is definitely unmapped when destroying bo
authorBen Skeggs <bskeggs@redhat.com>
Mon, 28 Feb 2011 04:22:12 +0000 (14:22 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 28 Feb 2011 05:00:16 +0000 (15:00 +1000)
Somehow fixes a misrendering + hang at GDM startup on my NVA8...

My first guess would have been stale TLB entries laying around that a new
bo then accidentally inherits.  That doesn't make a great deal of sense
however, as when we mapped the pages for the new bo the TLBs would've
gotten flushed anyway.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bo.c

index d38a4d9f9b0b0d6a49c66c3fa01e142e92372f1d..a52184007f5f0375f61d37335f323c98b46949ef 100644 (file)
@@ -49,7 +49,10 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo)
                DRM_ERROR("bo %p still attached to GEM object\n", bo);
 
        nv10_mem_put_tile_region(dev, nvbo->tile, NULL);
-       nouveau_vm_put(&nvbo->vma);
+       if (nvbo->vma.node) {
+               nouveau_vm_unmap(&nvbo->vma);
+               nouveau_vm_put(&nvbo->vma);
+       }
        kfree(nvbo);
 }