From: Tom Stellard Date: Mon, 26 Aug 2013 20:06:53 +0000 (-0700) Subject: r600g/compute: Fix bug in compute memory pool X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=505fad04f10eee1efdfcd8986b4d484b49d39986;p=mesa.git 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. --- 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; } }