[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250722054010.34608-1-zhaoguohan@kylinos.cn>
Date: Tue, 22 Jul 2025 13:40:10 +0800
From: zhaoguohan@...inos.cn
To: lucas.demarchi@...el.com,
thomas.hellstrom@...ux.intel.com,
rodrigo.vivi@...el.com,
airlied@...il.com,
simona@...ll.ch
Cc: intel-xe@...ts.freedesktop.org,
dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org,
GuoHan Zhao <zhaoguohan@...inos.cn>
Subject: [PATCH] drm/xe/hwmon: Return early on power limit read failure
From: GuoHan Zhao <zhaoguohan@...inos.cn>
In xe_hwmon_pcode_rmw_power_limit(), when xe_pcode_read() fails,
the function logs the error but continues to execute the subsequent
logic. This can result in undefined behavior as the values val0 and
val1 may contain invalid data.
Fix this by adding an early return after logging the read failure,
ensuring that we don't proceed with potentially corrupted data.
Signed-off-by: GuoHan Zhao <zhaoguohan@...inos.cn>
---
drivers/gpu/drm/xe/xe_hwmon.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index f08fc4377d25e..4e4f07f3e4788 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -190,9 +190,11 @@ static int xe_hwmon_pcode_rmw_power_limit(const struct xe_hwmon *hwmon, u32 attr
READ_PL_FROM_PCODE : READ_PL_FROM_FW),
&val0, &val1);
- if (ret)
+ if (ret) {
drm_dbg(&hwmon->xe->drm, "read failed ch %d val0 0x%08x, val1 0x%08x, ret %d\n",
channel, val0, val1, ret);
+ return ret;
+ }
if (attr == PL1_HWMON_ATTR)
val0 = (val0 & ~clr) | set;
--
2.43.0
Powered by blists - more mailing lists