From 34e75b0ca80011023c416831283fcce716b980b2 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Fri, 29 Oct 2010 21:34:26 +0200 Subject: r600g: Fixed unmap condition in radeon_bo_pb_destroy(). Signed-off-by: Tilman Sauerbeck --- src/gallium/winsys/r600/drm/radeon_bo_pb.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/gallium/winsys/r600/drm/radeon_bo_pb.c') diff --git a/src/gallium/winsys/r600/drm/radeon_bo_pb.c b/src/gallium/winsys/r600/drm/radeon_bo_pb.c index f74b934c37..312552f075 100644 --- a/src/gallium/winsys/r600/drm/radeon_bo_pb.c +++ b/src/gallium/winsys/r600/drm/radeon_bo_pb.c @@ -63,11 +63,13 @@ static void radeon_bo_pb_destroy(struct pb_buffer *_buf) { struct radeon_bo_pb *buf = radeon_bo_pb(_buf); - LIST_DEL(&buf->maplist); - - if (buf->bo->data != NULL) { + /* If this buffer is on the list of buffers to unmap, + * do the unmapping now. + */ + if (!LIST_IS_EMPTY(&buf->maplist)) radeon_bo_unmap(buf->mgr->radeon, buf->bo); - } + + LIST_DEL(&buf->maplist); radeon_bo_reference(buf->mgr->radeon, &buf->bo, NULL); FREE(buf); } -- cgit v1.2.3