Mesa (master): gallium/radeon: handle failure when mapping staging buffer

Nicolai Hähnle nh at kemper.freedesktop.org
Thu Apr 14 21:29:28 UTC 2016


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

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Wed Apr 13 10:55:29 2016 -0500

gallium/radeon: handle failure when mapping staging buffer

Cc: "11.1 11.2" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeon/r600_buffer_common.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 47514e9..664dc5b 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -376,6 +376,10 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,
 				       0, 0, resource, level, box);
 
 			data = r600_buffer_map_sync_with_rings(rctx, staging, PIPE_TRANSFER_READ);
+			if (!data) {
+				pipe_resource_reference((struct pipe_resource **)&staging, NULL);
+				return NULL;
+			}
 			data += box->x % R600_MAP_BUFFER_ALIGNMENT;
 
 			return r600_buffer_get_transfer(ctx, resource, level, usage, box,




More information about the mesa-commit mailing list