On 11/04/2010 01:03 AM, Ben Skeggs wrote:
From: Ben Skeggs<bske...@redhat.com>

Nouveau will start to use ttm_mem_io_reserve to allocate BAR VM space
for VRAM mappings, and without this call GPU address space gets leaked.

Signed-off-by: Ben Skeggs<bske...@redhat.com>
---
  drivers/gpu/drm/ttm/ttm_bo.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index dfa163b..c373cf9 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -472,6 +472,7 @@ static void ttm_bo_cleanup_memtype_use(struct 
ttm_buffer_object *bo)
        wake_up_all(&bo->event_queue);
        spin_unlock(&glob->lru_lock);

+       ttm_mem_io_free(bo->bdev,&tmp_mem);
        ttm_bo_mem_put(bo,&tmp_mem);
  }

Ideally this should be done after the last VMA is closed, but since we don't count VMAs currently. This place is just as good.

However, the mem members are strictly protected by bo::reserve, so we should place this before we unreserve in the same function, Please use drm-next where ttm_bo_mem_put() is placed just before the unreserve as well.


/Thomas


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to