]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/ttm: handle undefined printf arg evaluation order in debugfs
authorDave Airlie <airlied@redhat.com>
Tue, 3 Jun 2025 22:09:01 +0000 (08:09 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 4 Jun 2025 21:15:12 +0000 (07:15 +1000)
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 <christian.koenig@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://lore.kernel.org/r/20250603220901.1217161-1-airlied@gmail.com
drivers/gpu/drm/ttm/ttm_pool.c

index cd31a30df3b09a95ae4193cff6cdc3659307a6ec..99197aac09a136252888fa7bf5f18c38347c4221 100644 (file)
@@ -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);