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 <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28961>
This commit is contained in:
committed by
Marge Bot
parent
e21ea25de9
commit
e050abc961
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user