From 505fad04f10eee1efdfcd8986b4d484b49d39986 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 26 Aug 2013 13:06:53 -0700 Subject: [PATCH] r600g/compute: Fix bug in compute memory pool When adding a new buffer to the beginning of the memory pool, we were accidentally deleting the buffer that was first in the buffer list. This was caused by a bug in the memory pool's linked list implementation. --- src/gallium/drivers/r600/compute_memory_pool.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/r600/compute_memory_pool.c b/src/gallium/drivers/r600/compute_memory_pool.c index a02df844ff0..75696d2397d 100644 --- a/src/gallium/drivers/r600/compute_memory_pool.c +++ b/src/gallium/drivers/r600/compute_memory_pool.c @@ -337,14 +337,9 @@ void compute_memory_finalize_pending(struct compute_memory_pool* pool, } } else { /* Add item to the front of the list */ - item->next = pool->item_list->next; - if (pool->item_list->next) { - pool->item_list->next->prev = item; - } + item->next = pool->item_list; item->prev = pool->item_list->prev; - if (pool->item_list->prev) { - pool->item_list->prev->next = item; - } + pool->item_list->prev = item; pool->item_list = item; } } -- 2.30.2