From: Marek Olšák Date: Sun, 3 Apr 2011 17:17:19 +0000 (+0200) Subject: r300g: avoid mapping the same buffer twice X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=652bf121f2124ec92b74f6e3e40e6aefcc1c50dc;p=mesa.git r300g: avoid mapping the same buffer twice Shouldn't happen, but you never know. --- diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c index eb7225b8738..4fd82201418 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c @@ -191,6 +191,11 @@ static void *radeon_bo_map_internal(struct pb_buffer *_buf, /* Map the buffer. */ pipe_mutex_lock(bo->map_mutex); + /* Return the pointer if it's already mapped (in case of a race). */ + if (bo->ptr) { + pipe_mutex_unlock(bo->map_mutex); + return bo->ptr; + } args.handle = bo->handle; args.offset = 0; args.size = (uint64_t)bo->size;