[AMD Official Use Only - AMD Internal Distribution Only]

>-----Original Message-----
>From: Zhang, Jesse(Jie) <[email protected]>
>Sent: Monday, October 13, 2025 11:25 AM
>To: Lazar, Lijo <[email protected]>; [email protected]; dri-
>[email protected]
>Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
><[email protected]>; Yang, Philip <[email protected]>
>Subject: RE: [PATCH] drm/ttm: Add NULL check in
>ttm_resource_manager_usage
>
>[AMD Official Use Only - AMD Internal Distribution Only]
>
>> -----Original Message-----
>> From: Lazar, Lijo <[email protected]>
>> Sent: Monday, October 13, 2025 12:37 PM
>> To: Zhang, Jesse(Jie) <[email protected]>;
>> [email protected]; [email protected]
>> Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
>> <[email protected]>; Zhang, Jesse(Jie) <[email protected]>;
>> Yang, Philip <[email protected]>; Zhang, Jesse(Jie)
>> <[email protected]>
>> Subject: RE: [PATCH] drm/ttm: Add NULL check in
>> ttm_resource_manager_usage
>>
>> [AMD Official Use Only - AMD Internal Distribution Only]
>>
>> The specific issue of trace with amdgpu_mem_info_vram_used_show should
>> be fixed with this one - "drm/amdgpu: hide VRAM sysfs attributes on
>> GPUs without VRAM"
>Thanks @Lazar, Lijo,  maybe we still can use this patch to fix  this crash when
>calling  AMDGPU_CS and  query AMDGPU_INFO_VRAM_USAGE.
>or add check like the previous patch.
>
[lijo]

Agree, there are indeed multiple places of ttm_resource_manager_usage call. You 
may follow the same check as in the hide VRAM patch - ttm_resource_manager_used 
- in case ttm doesn't take this change.

Thanks,
Lijo

>Regards
>Jesse
>
>[  911.954646] BUG: kernel NULL pointer dereference, address:
>00000000000008f8 [  911.962437]
>#PF: supervisor write access in kernel mode [  912.007045] RIP:
>0010:_raw_spin_lock+0x1e/0x40  [  912.105151]
>amdttm_resource_manager_usage+0x1f/0x40
> [amdttm] [  912.111579]  amdgpu_cs_parser_bos.isra.0+0x543/0x800
>[amdgpu]
>
>>
>> Thanks,
>> Lijo
>> >-----Original Message-----
>> >From: amd-gfx <[email protected]> On Behalf Of
>> >Jesse.Zhang
>> >Sent: Monday, October 13, 2025 7:25 AM
>> >To: [email protected]; [email protected]
>> >Cc: Deucher, Alexander <[email protected]>; Koenig, Christian
>> ><[email protected]>; Zhang, Jesse(Jie) <[email protected]>;
>> >Yang, Philip <[email protected]>; Zhang, Jesse(Jie)
>> ><[email protected]>
>> >Subject: [PATCH] drm/ttm: Add NULL check in
>> >ttm_resource_manager_usage
>> >
>> >Add a NULL pointer check in ttm_resource_manager_usage() to prevent
>> >kernel NULL pointer dereferences when the function is called with an
>> >uninitialized resource manager.
>> >
>> >This fixes a kernel OOPS observed on APU devices where the VRAM
>> >resource manager is not fully initialized, but various sysfs and
>> >debug interfaces still attempt to query VRAM usage statistics.
>> >
>> >The crash backtrace showed:
>> >    BUG: kernel NULL pointer dereference, address: 00000000000008f8
>> >    Call Trace:
>> >     amdttm_resource_manager_usage+0x1f/0x40 [amdttm]
>> >     amdgpu_mem_info_vram_used_show+0x1e/0x40 [amdgpu]
>> >     dev_attr_show+0x1d/0x40
>> >     kernfs_seq_show+0x27/0x30
>> >
>> >By returning 0 for NULL managers, we allow callers to safely query
>> >usage information even when the underlying resource manager is not
>> >available, which is the expected behavior for devices without
>> >dedicated VRAM like
>> APUs.
>> >
>> >Suggested-by: Philip Yang <[email protected]>
>> >Signed-off-by: Jesse Zhang <[email protected]>
>> >---
>> > drivers/gpu/drm/ttm/ttm_resource.c | 3 +++
>> > 1 file changed, 3 insertions(+)
>> >
>> >diff --git a/drivers/gpu/drm/ttm/ttm_resource.c
>> >b/drivers/gpu/drm/ttm/ttm_resource.c
>> >index e2c82ad07eb4..e4d45f75e40a 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 (!man)
>> >+              return 0;
>> >+
>> >       spin_lock(&man->bdev->lru_lock);
>> >       usage = man->usage;
>> >       spin_unlock(&man->bdev->lru_lock);
>> >--
>> >2.49.0
>>
>

Reply via email to