[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: YiPeng Chai <[email protected]>

Best Regards,
Thomas
-----Original Message-----
From: SHANMUGAM, SRINIVASAN <[email protected]>
Sent: Sunday, March 15, 2026 2:26 PM
To: Koenig, Christian <[email protected]>; Deucher, Alexander 
<[email protected]>
Cc: [email protected]; SHANMUGAM, SRINIVASAN 
<[email protected]>; Chai, Thomas <[email protected]>; Dan 
Carpenter <[email protected]>; Zhou1, Tao <[email protected]>; Zhang, 
Hawking <[email protected]>
Subject: [PATCH] drm/amd/ras: Fix NULL deref in 
ras_core_get_utc_second_timestamp()

ras_core_get_utc_second_timestamp() retrieves the current UTC timestamp (in 
seconds since the Unix epoch) through a platform-specific RAS system callback 
and is used for timestamping RAS error events.

The function checks ras_core in the conditional statement before calling the 
sys_fn callback. However, when the condition fails, the function prints an 
error message using ras_core->dev.

If ras_core is NULL, this can lead to a potential NULL pointer dereference when 
accessing ras_core->dev.

Add an early NULL check for ras_core at the beginning of the function and 
return 0 when the pointer is not valid. This prevents the dereference and makes 
the control flow clearer.

Fixes: 13c91b5b4378 ("drm/amd/ras: Add rascore unified interface function")
Cc: YiPeng Chai <[email protected]>
Cc: Dan Carpenter <[email protected]>
Cc: Tao Zhou <[email protected]>
Cc: Hawking Zhang <[email protected]>
Cc: Christian König <[email protected]>
Cc: Alex Deucher <[email protected]>
Signed-off-by: Srinivasan Shanmugam <[email protected]>
---
 drivers/gpu/drm/amd/ras/rascore/ras_core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_core.c 
b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
index 10cd398d4ae2..844720e4a275 100644
--- a/drivers/gpu/drm/amd/ras/rascore/ras_core.c
+++ b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
@@ -527,6 +527,9 @@ bool ras_core_is_enabled(struct ras_core_context *ras_core)

 uint64_t ras_core_get_utc_second_timestamp(struct ras_core_context *ras_core)  
{
+       if (!ras_core)
+               return 0;
+
        if (ras_core && ras_core->sys_fn &&
                ras_core->sys_fn->get_utc_second_timestamp)
                return ras_core->sys_fn->get_utc_second_timestamp(ras_core);
--
2.34.1

Reply via email to