Bug: ttm_pool_fini() does not destroy list lru with list_lru_destroy(). Fix: Add list_lru_destroy() after ttm_pool_type_fini().
Assisted-by: OpenCode:1.17.18-Big Pickle/DeepSeek V4 Flash Assisted-by: claude.ai:Sonnet 5 Cc: <[email protected]> # 7.1.0 Fixes: 444e2a19d7fd ("ttm/pool: port to list_lru. (v2)") Signed-off-by: Óscar Megía López <[email protected]> --- drivers/gpu/drm/ttm/ttm_pool.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c index 8637f7942347..87c843f52736 100644 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@ -1232,6 +1232,17 @@ void ttm_pool_fini(struct ttm_pool *pool) * that no shrinker is concurrently freeing pages from the pool. */ ttm_pool_synchronize_shrinkers(); + + for (i = 0; i < TTM_NUM_CACHING_TYPES; ++i) { + for (j = 0; j < NR_PAGE_ORDERS; ++j) { + struct ttm_pool_type *pt; + + pt = ttm_pool_select_type(pool, i, j); + if (pt != &pool->caching[i].orders[j]) + continue; + list_lru_destroy(&pt->pages); + } + } } EXPORT_SYMBOL(ttm_pool_fini); -- 2.55.0
