From: Vasily Khoruzhick Date: Tue, 10 Mar 2020 08:53:57 +0000 (-0700) Subject: lima/gpir: fix crash in schedule_insert_ready_list() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ac1dbd5ef81fe9bd389e38f22da32d940c1d9e02;p=mesa.git 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: --- 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; } }