[Mesa-dev] [PATCH] radeonsi: Refuse to accept code with unhandled relocations

Jan Vesely jan.vesely at rutgers.edu
Tue Jul 17 14:36:57 UTC 2018


They might lead to unrecoverable GPU hang.
Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
---
 src/gallium/drivers/radeonsi/si_compute.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index 5d3341ff61..2349be9584 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -238,6 +238,12 @@ static void *si_create_compute_state(
 			const amd_kernel_code_t *code_object =
 				si_compute_get_code_object(program, 0);
 			code_object_to_config(code_object, &program->shader.config);
+			if (program->shader.binary.reloc_count != 0) {
+				fprintf(stderr, "Error: %d unsupported relocations\n",
+					program->shader.binary.reloc_count);
+				FREE(program);
+				return NULL;
+			}
 		} else {
 			si_shader_binary_read_config(&program->shader.binary,
 				     &program->shader.config, 0);
-- 
2.16.4



More information about the mesa-dev mailing list