From: Dave Airlie Date: Tue, 3 Jun 2025 22:09:01 +0000 (+1000) Subject: drm/ttm: handle undefined printf arg evaluation order in debugfs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c87a3f4fac5b6fee3b3e6a82a12147da5b5df507;p=thirdparty%2Flinux.git drm/ttm: handle undefined printf arg evaluation order in debugfs When you read this debugfs file it's isn't guaranteed the count will happen before the scan, but I think the intent is that it does. printf argument evaluation order is undefined. Cc: Christian Koenig Reviewed-by: Christian König Signed-off-by: Dave Airlie Link: https://lore.kernel.org/r/20250603220901.1217161-1-airlied@gmail.com --- diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c index cd31a30df3b09..99197aac09a13 100644 --- a/drivers/gpu/drm/ttm/ttm_pool.c +++ b/drivers/gpu/drm/ttm/ttm_pool.c @@ -1280,9 +1280,11 @@ static int ttm_pool_debugfs_shrink_show(struct seq_file *m, void *data) .gfp_mask = GFP_NOFS, .nr_to_scan = TTM_SHRINKER_BATCH, }; + unsigned long count; fs_reclaim_acquire(GFP_KERNEL); - seq_printf(m, "%lu/%lu\n", ttm_pool_shrinker_count(mm_shrinker, &sc), + count = ttm_pool_shrinker_count(mm_shrinker, &sc); + seq_printf(m, "%lu/%lu\n", count, ttm_pool_shrinker_scan(mm_shrinker, &sc)); fs_reclaim_release(GFP_KERNEL);