From 916bd73f1d75d4b023f3271323e6d6f6a44a4c6e Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 12 Nov 2024 17:27:12 +0100 Subject: [PATCH] etnaviv: drm: assert mutual exclusivity between cache and zombie list The BO list member is used to track the BO both on the cache bucket list as well as the zombie list. The BO being on both lists at the same time is an invalid state. Add some asserts to validate this assumption. Signed-off-by: Lucas Stach Reviewed-by: Christian Gmeiner Part-of: --- src/etnaviv/drm/etnaviv_bo.c | 1 + src/etnaviv/drm/etnaviv_bo_cache.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/etnaviv/drm/etnaviv_bo.c b/src/etnaviv/drm/etnaviv_bo.c index b1f3f9cb83e..627e77ad5bc 100644 --- a/src/etnaviv/drm/etnaviv_bo.c +++ b/src/etnaviv/drm/etnaviv_bo.c @@ -118,6 +118,7 @@ void etna_bo_free(struct etna_bo *bo) { if (dev->use_softpin) { etna_bo_cleanup_zombies(dev); VG_BO_RELEASE(bo); + assert(!list_is_linked(&bo->list)); list_addtail(&bo->list, &dev->zombie_list); } else { _etna_bo_free(bo); diff --git a/src/etnaviv/drm/etnaviv_bo_cache.c b/src/etnaviv/drm/etnaviv_bo_cache.c index 1d0af059db9..0930f3afa1c 100644 --- a/src/etnaviv/drm/etnaviv_bo_cache.c +++ b/src/etnaviv/drm/etnaviv_bo_cache.c @@ -185,6 +185,7 @@ int etna_bo_cache_free(struct etna_bo_cache *cache, struct etna_bo *bo) bo->free_time = time.tv_sec; VG_BO_RELEASE(bo); + assert(!list_is_linked(&bo->list)); list_addtail(&bo->list, &bucket->list); etna_bo_cache_cleanup(cache, time.tv_sec);