]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/ttm: Add safety check for NULL man->bdev in ttm_resource_manager_usage
authorJesse.Zhang <Jesse.Zhang@amd.com>
Mon, 13 Oct 2025 08:58:25 +0000 (16:58 +0800)
committerArunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Tue, 14 Oct 2025 07:47:34 +0000 (13:17 +0530)
The `ttm_resource_manager_usage()` function currently assumes `man->bdev` is non-NULL when accessing `man->bdev->lru_lock`.
However, in scenarios where the resource manager is not fully initialized (e.g., APU platforms that lack dedicated VRAM, or incomplete manager setup),
 `man->bdev` may remain NULL. This leads to a NULL pointer dereference when attempting to acquire the `lru_lock`, triggering kernel OOPS.

Fix this by adding an explicit safety check for `man->bdev` before accessing its members:
- Use `WARN_ON_ONCE(!man->bdev)` to emit a one-time warning (a soft assertion) when `man->bdev` is NULL. This helps catch invalid usage patterns during debugging without breaking production workflows.
- Return 0 immediately if `man->bdev` is NULL, as a non-initialized manager cannot have valid resource usage to report.

Suggested-by: Christian König <christian.koenig@amd.com>
Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Jesse Zhang <jesse.zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Link: https://lore.kernel.org/r/20251013085849.1735612-1-Jesse.Zhang@amd.com
drivers/gpu/drm/ttm/ttm_resource.c

index e2c82ad07eb44b5e88bf5b5db1ef54dd6d27823b..d93d1bef6768cb3eed4fdd977cc56865b00efb62 100644 (file)
@@ -587,6 +587,9 @@ uint64_t ttm_resource_manager_usage(struct ttm_resource_manager *man)
 {
        uint64_t usage;
 
+       if (WARN_ON_ONCE(!man->bdev))
+               return 0;
+
        spin_lock(&man->bdev->lru_lock);
        usage = man->usage;
        spin_unlock(&man->bdev->lru_lock);