From: Jesse.Zhang Date: Mon, 13 Oct 2025 08:58:25 +0000 (+0800) Subject: drm/ttm: Add safety check for NULL man->bdev in ttm_resource_manager_usage X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=74e2c12ea287089f093a1e37fd2b8b8c7dd41c9f;p=thirdparty%2Fkernel%2Flinux.git drm/ttm: Add safety check for NULL man->bdev in ttm_resource_manager_usage 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 Suggested-by: Lijo Lazar Signed-off-by: Jesse Zhang Reviewed-by: Christian König Signed-off-by: Arunpravin Paneer Selvam Link: https://lore.kernel.org/r/20251013085849.1735612-1-Jesse.Zhang@amd.com --- diff --git a/drivers/gpu/drm/ttm/ttm_resource.c b/drivers/gpu/drm/ttm/ttm_resource.c index e2c82ad07eb44..d93d1bef6768c 100644 --- a/drivers/gpu/drm/ttm/ttm_resource.c +++ b/drivers/gpu/drm/ttm/ttm_resource.c @@ -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);