summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2013-08-26 13:06:53 -0700
committerTom Stellard <[email protected]>2013-09-05 17:18:00 -0700
commit505fad04f10eee1efdfcd8986b4d484b49d39986 (patch)
treec55294158f36db0a3ee00f8d8b21670fb4e98adf
parentf0435ebb07d01a77ca0d98967a002898811a5206 (diff)
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.
-rw-r--r--src/gallium/drivers/r600/compute_memory_pool.c9
1 files 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;
}
}