Mesa (master): radeon/winsys: fix winsys VM handling

Christian König deathsimple at kemper.freedesktop.org
Wed Aug 8 10:46:38 UTC 2012


Module: Mesa
Branch: master
Commit: 8c44e5a144009a03c20befa6468d19d41c802795
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c44e5a144009a03c20befa6468d19d41c802795

Author: Christian König <deathsimple at vodafone.de>
Date:   Mon Aug  6 17:53:49 2012 +0200

radeon/winsys: fix winsys VM handling

Move releasing the VM area after closing the bo handle.

This partially fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45018

Signed-off-by: Christian König <deathsimple at vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

---

 src/gallium/winsys/radeon/drm/radeon_drm_bo.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index 2626586..464842c 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -319,13 +319,14 @@ static void radeon_bo_destroy(struct pb_buffer *_buf)
     if (bo->ptr)
         os_munmap(bo->ptr, bo->base.size);
 
+    /* Close object. */
+    args.handle = bo->handle;
+    drmIoctl(bo->rws->fd, DRM_IOCTL_GEM_CLOSE, &args);
+
     if (mgr->va) {
         radeon_bomgr_free_va(mgr, bo->va, bo->va_size);
     }
 
-    /* Close object. */
-    args.handle = bo->handle;
-    drmIoctl(bo->rws->fd, DRM_IOCTL_GEM_CLOSE, &args);
     pipe_mutex_destroy(bo->map_mutex);
     FREE(bo);
 }




More information about the mesa-commit mailing list