From 8e11f0560e80e6057d1149bca0b40c7e88a4d981 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 10 Nov 2020 11:50:29 +0100 Subject: [PATCH] ir3: Fix list corruption in legalize_block() We forgot to remove the instruction under consideration from instr_list before inserting it into the block's list, which caused instr_list to become corrupted. This happened to work but caused further corruption in some rare scenarios. Fixes: adf1659 ("freedreno/ir3: use standard list implementation") Part-of: --- src/freedreno/ir3/ir3_legalize.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/freedreno/ir3/ir3_legalize.c b/src/freedreno/ir3/ir3_legalize.c index 262a9c3ab3c..fa193b5791e 100644 --- a/src/freedreno/ir3/ir3_legalize.c +++ b/src/freedreno/ir3/ir3_legalize.c @@ -243,6 +243,7 @@ legalize_block(struct ir3_legalize_ctx *ctx, struct ir3_block *block) samgp->flags |= IR3_INSTR_SY; } } else { + list_delinit(&n->node); list_addtail(&n->node, &block->instr_list); }