diff options
| author | Ben Skeggs <bskeggs@redhat.com> | 2011-02-27 23:22:12 -0500 |
|---|---|---|
| committer | Ben Skeggs <bskeggs@redhat.com> | 2011-02-28 00:00:16 -0500 |
| commit | 7db26623257a16c901a4b77bfc5096ee05304932 (patch) | |
| tree | 6c92f51db3b30ed6089f25b80e21d296bb4639a5 | |
| parent | 3c0556e9673f79e386b27768e27d18b3ce29e40e (diff) | |
drm/nv50-nvc0: make sure vma is definitely unmapped when destroying bo
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>
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bo.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index d38a4d9f9b0b..a52184007f5f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c | |||
| @@ -49,7 +49,10 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo) | |||
| 49 | DRM_ERROR("bo %p still attached to GEM object\n", bo); | 49 | DRM_ERROR("bo %p still attached to GEM object\n", bo); |
| 50 | 50 | ||
| 51 | nv10_mem_put_tile_region(dev, nvbo->tile, NULL); | 51 | nv10_mem_put_tile_region(dev, nvbo->tile, NULL); |
| 52 | nouveau_vm_put(&nvbo->vma); | 52 | if (nvbo->vma.node) { |
| 53 | nouveau_vm_unmap(&nvbo->vma); | ||
| 54 | nouveau_vm_put(&nvbo->vma); | ||
| 55 | } | ||
| 53 | kfree(nvbo); | 56 | kfree(nvbo); |
| 54 | } | 57 | } |
| 55 | 58 | ||
