All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Karthik Poosa" <karthik.poosa@intel.com>
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v9 01/14] drm/xe/hwmon: Handle pcode read failures of xe_hwmon_pcode_rmw_power_limit
Date: Fri, 09 Oct 2026 12:14:43 +0000	[thread overview]
Message-ID: <sashiko-outbox-165502@kernel.org> (raw)
In-Reply-To: <20261009120335.52973-2-karthik.poosa@intel.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] drm/xe/hwmon: unchecked return value from xe_hwmon_pcode_rmw_power_limit()
- [Medium] hwmon: ignored pcode read errors fabricate valid sysfs responses
--

commit 6cc9575a02c32b9a8a28e257650ff7b17698865f
Author: Karthik Poosa <karthik.poosa@intel.com>

drm/xe/hwmon: Handle pcode read failures of xe_hwmon_pcode_rmw_power_limit

This commit adds a return on read failures inside
xe_hwmon_pcode_rmw_power_limit and updates callers to avoid updating
power limit settings with invalid data.

> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
> index 5edeac961ec33..9884e06f83e59 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> @@ -232,9 +232,11 @@ static int xe_hwmon_pcode_rmw_power_limit(const struct xe_hwmon *hwmon, u32 attr
>  						  READ_PSYSGPU_POWER_LIMIT :
>  						  READ_PACKAGE_POWER_LIMIT,
>  						  prepare_power_limit_param2(hwmon)), &val0, &val1);
> -	if (ret)
> -		drm_dbg(&hwmon->xe->drm, "read failed ch %d val0 0x%08x, val1 0x%08x, ret %d\n",
> +	if (ret) {
> +		drm_err(&hwmon->xe->drm, "read failed ch %d val0 0x%08x, val1 0x%08x, ret %d\n",
>  			channel, val0, val1, ret);
> +		return ret;
> +	}

[Severity: Medium]
Since this function now returns early on error, skipping the subsequent PCODE
writes, could this cause regressions in xe_hwmon_get_preregistration_info?

In xe_hwmon_get_preregistration_info, there are four calls to this function
that ignore the return value. If these initialization writes fail, the
function still sets hwmon->boot_power_limit_read = true.

Setting this flag alters the subcommand used for later reads, changing it from
READ_PL_FROM_FW to READ_PL_FROM_PCODE. Could this cause userspace to receive
incorrect power limit values if the initial writes were aborted?

[ ... ]
> @@ -394,7 +396,9 @@ static int xe_hwmon_power_max_write(struct xe_hwmon *hwmon, u32 attr, int channe
>  		if (hwmon->xe->info.has_mbx_power_limits) {
>  			drm_dbg(&hwmon->xe->drm, "disabling %s on channel %d\n",
>  				PWR_ATTR_TO_STR(attr), channel);
> -			xe_hwmon_pcode_rmw_power_limit(hwmon, attr, channel, PWR_LIM_EN, 0);
> +			ret = xe_hwmon_pcode_rmw_power_limit(hwmon, attr, channel, PWR_LIM_EN, 0);
> +			if (ret)
> +				goto unlock;
>  			xe_hwmon_pcode_read_power_limit(hwmon, attr, channel, &reg_val);

[Severity: Medium]
Is it intentional that the return value of xe_hwmon_pcode_read_power_limit is
discarded right after checking the write failure?

If this read fails due to a hardware timeout, it could leave reg_val
uninitialized or zeroed, bypassing the disable verification check that follows.

Additionally, could the ignored read errors in xe_hwmon_power_max_read
fabricate valid sysfs responses? If xe_hwmon_pcode_read_power_limit fails in
that function, it returns fake 0 readings instead of propagating the hardware
error, which might mislead userspace tools into believing the power limit is
disabled.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261009120335.52973-1-karthik.poosa@intel.com?part=1

  reply	other threads:[~2026-10-09 12:14 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-09 12:03 [PATCH v9 00/14] drm/xe/hwmon: Update hwmon thermal mailbox Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 01/14] drm/xe/hwmon: Handle pcode read failures of xe_hwmon_pcode_rmw_power_limit Karthik Poosa
2026-10-09 12:14   ` sashiko-bot [this message]
2026-10-10  5:14     ` Poosa, Karthik
2026-10-12 11:09       ` Poosa, Karthik
2026-10-09 12:03 ` [PATCH v9 02/14] drm/xe/hwmon: Decode mailbox temperature as sign-magnitude Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 03/14] drm/xe/hwmon: Fix memory controller thermal data handling Karthik Poosa
2026-10-09 12:15   ` sashiko-bot
2026-10-09 12:03 ` [PATCH v9 04/14] drm/xe/hwmon: Add helpers to validate thermal sensor readings Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 05/14] drm/xe/hwmon: Handle unavailable memory controller sensors Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 06/14] drm/xe/hwmon: Detect unavailable PCIe thermal sensors Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 07/14] drm/xe/hwmon: Consolidate temperature sensor availability checks Karthik Poosa
2026-10-09 12:16   ` sashiko-bot
2026-10-10  5:19     ` Poosa, Karthik
2026-10-12 13:10       ` Poosa, Karthik
2026-10-09 12:03 ` [PATCH v9 08/14] drm/xe/hwmon: Cache temperature availability to reduce probe time Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 09/14] drm/xe/hwmon: use CRI-specific package and VRAM temperature registers Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 10/14] drm/xe/hwmon: Add platform-aware VRAM thermal channel support Karthik Poosa
2026-10-09 12:18   ` sashiko-bot
2026-10-10  5:39     ` Poosa, Karthik
2026-10-09 12:03 ` [PATCH v9 11/14] drm/xe/hwmon: Decode CRI temperature registers as IEEE-754 Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 12/14] drm/xe/hwmon: Update memory controller temperature offset for CRI Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 13/14] drm/xe/hwmon: add PCIe temperature support " Karthik Poosa
2026-10-09 12:03 ` [PATCH v9 14/14] drm/xe/hwmon: Simplify temperature channels config Karthik Poosa
2026-10-09 12:17 ` ✓ CI.KUnit: success for drm/xe/hwmon: Update hwmon thermal mailbox (rev6) Patchwork
2026-10-09 13:42 ` ✓ Xe.CI.BAT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-165502@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=karthik.poosa@intel.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.