From ac1dbd5ef81fe9bd389e38f22da32d940c1d9e02 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Tue, 10 Mar 2020 01:53:57 -0700 Subject: [PATCH] lima/gpir: fix crash in schedule_insert_ready_list() Fix crash if node is already at position we want. Otherwise we remove it from list (and list->prev becomes NULL) and then we dereference list->prev in list_addtail() Reviewed-by: Andreas Baierl Signed-off-by: Vasily Khoruzhick Tested-by: Marge Bot Part-of: --- .gitlab-ci/deqp-lima-skips.txt | 5 ----- src/gallium/drivers/lima/ir/gp/reduce_scheduler.c | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci/deqp-lima-skips.txt b/.gitlab-ci/deqp-lima-skips.txt index 83b241f34d1..f866ece29a6 100644 --- a/.gitlab-ci/deqp-lima-skips.txt +++ b/.gitlab-ci/deqp-lima-skips.txt @@ -9,11 +9,6 @@ dEQP-GLES[0-9]*.stress # These are really slow on tiling architectures (including llvmpipe). dEQP-GLES[0-9]*.functional.flush_finish -# Crashes -dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1 -dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1 -dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1 - # Flaky dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z dEQP-GLES2.functional.default_vertex_attrib.* diff --git a/src/gallium/drivers/lima/ir/gp/reduce_scheduler.c b/src/gallium/drivers/lima/ir/gp/reduce_scheduler.c index 8b4f559330d..47cc6109e01 100644 --- a/src/gallium/drivers/lima/ir/gp/reduce_scheduler.c +++ b/src/gallium/drivers/lima/ir/gp/reduce_scheduler.c @@ -118,6 +118,8 @@ static void schedule_insert_ready_list(struct list_head *ready_list, (insert_node->rsched.reg_pressure == node->rsched.reg_pressure && (insert_node->rsched.est >= node->rsched.est))))) { insert_pos = &node->list; + if (node == insert_node) + return; break; } } -- 2.30.2