r600g: don't unmap if we haven't mapped
authorDave Airlie <airlied@redhat.com>
Fri, 13 May 2011 04:03:47 +0000 (14:03 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 13 May 2011 04:03:47 +0000 (14:03 +1000)
should fix https://bugs.freedesktop.org/show_bug.cgi?id=37157

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/winsys/r600/drm/radeon_bo.c

index 9a534dddf323bf808988f635f7aa1b0406c2a737..cd817fc240bf163cc3a07cdc94fa90baf3502e24 100644 (file)
@@ -64,8 +64,10 @@ int radeon_bo_fixed_map(struct radeon *radeon, struct radeon_bo *bo)
 
 static void radeon_bo_fixed_unmap(struct radeon *radeon, struct radeon_bo *bo)
 {
-       munmap(bo->data, bo->size);
-       bo->data = NULL;
+       if (bo->data) {
+               munmap(bo->data, bo->size);
+               bo->data = NULL;
+       }
 }
 
 struct radeon_bo *radeon_bo(struct radeon *radeon, unsigned handle,