From e050abc961d2d063f9d7cf419f43aaf17ba0b039 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sun, 28 Apr 2024 15:54:32 +0200 Subject: [PATCH] radv: Fix radv_shader_arena_block list corruption Remove it from the previous list befor adding it to a new one. cc: mesa-stable Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 36e21a9ebc2..15d10a90f9f 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -839,6 +839,7 @@ alloc_block_obj(struct radv_device *device) static void free_block_obj(struct radv_device *device, union radv_shader_arena_block *block) { + list_del(&block->pool); list_add(&block->pool, &device->shader_block_obj_pool); } @@ -1129,7 +1130,6 @@ radv_free_shader_memory(struct radv_device *device, union radv_shader_arena_bloc remove_hole(free_list, hole_prev); hole_prev->size += hole->size; - list_del(&hole->list); free_block_obj(device, hole); hole = hole_prev; @@ -1142,7 +1142,6 @@ radv_free_shader_memory(struct radv_device *device, union radv_shader_arena_bloc hole_next->offset -= hole->size; hole_next->size += hole->size; - list_del(&hole->list); free_block_obj(device, hole); hole = hole_next;