There may actually be something mapped in that range, especially for large
buffers like e.g. the GL Drawable. Should it ever be valid to destroy a bo
that's still mapped in the first place though?
---
 src/gallium/winsys/r600/drm/radeon_bo.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/gallium/winsys/r600/drm/radeon_bo.c 
b/src/gallium/winsys/r600/drm/radeon_bo.c
index f259ae7..a1306f6 100644
--- a/src/gallium/winsys/r600/drm/radeon_bo.c
+++ b/src/gallium/winsys/r600/drm/radeon_bo.c
@@ -145,7 +145,9 @@ struct radeon_bo *radeon_bo_decref(struct radeon *radeon, 
struct radeon_bo *bo)
                return NULL;
        }
 
-       munmap(bo->data, bo->size);
+       if (bo->map_count) {
+               munmap(bo->data, bo->size);
+       }
        memset(&args, 0, sizeof(args));
        args.handle = bo->handle;
        drmIoctl(radeon->fd, DRM_IOCTL_GEM_CLOSE, &args);
-- 
1.7.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to