From 44a3f2ee0974003597b0574f99c2440361d61b35 Mon Sep 17 00:00:00 2001 From: Mun Gwan-gyeong Date: Mon, 21 Nov 2016 23:20:43 +0900 Subject: [PATCH] radeonsi: Add missing error-checking to si_create_compute_state (v2) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When the uploading of shader fails on si_shader_binary_upload(), it returns -ENOMEM. We should handle si_shader_binary_upload() failure path on si_create_compute_state(). CID 1394027 v2: Fixes from Edward O'Callaghan's review a) Update explicitly return value check with "si_shader_binary_upload() < 0" b) Update commit message. Signed-off-by: Mun Gwan-gyeong Reviewed-by: Edward O'Callaghan Signed-off-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_compute.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 69d57b9..e53ffa4 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -170,7 +170,11 @@ static void *si_create_compute_state( } si_shader_dump(sctx->screen, &program->shader, &sctx->b.debug, PIPE_SHADER_COMPUTE, stderr); - si_shader_binary_upload(sctx->screen, &program->shader); + if (si_shader_binary_upload(sctx->screen, &program->shader) < 0) { + fprintf(stderr, "LLVM failed to upload shader\n"); + FREE(program); + return NULL; + } } return program; -- 2.7.4