Re: [PATCH] platform/x86: hp-wmi: handle positive BIOS error codes

From: Yousef Alhouseen

Date: Thu Jul 30 2026 - 18:09:03 EST


Hi Ilpo,

No specific hardware exhibited this; I found it by static inspection.
hp_wmi_perform_query() documents positive BIOS error returns, while
victus_s_gpu_thermal_profile_get() only initializes its output
arguments when the return is zero, so these two ret < 0 checks can
consume uninitialized values on a positive return.

I only ran strict checkpatch and a focused Clang build of hp-wmi.o. I
do not have a Victus S system to reproduce it. If hardware validation
is required for this change, I am happy to withdraw it.

Regards,
Yousef

On Tue, 21 Jul 2026 20:28:38 +0300 (EEST), "Ilpo Järvinen"
<ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote:
> On Tue, 30 Jun 2026, Yousef Alhouseen wrote:
>
> > hp_wmi_perform_query() returns firmware BIOS error codes as positive
> > values. The Victus-S profile callers only reject negative errors, then
> > consume output fields that are not filled for a positive firmware error.
>
> On which hw you see this? Please add the info.
>
> > Treat every nonzero result from victus_s_gpu_thermal_profile_get()
> > as a failed query before using its outputs.
> >
> > Signed-off-by: Yousef Alhouseen <alhouseenyousef@xxxxxxxxx>
> > ---
> > drivers/platform/x86/hp/hp-wmi.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-wmi.c
> > index 8ba286ed8721..50c5a1e152dd 100644
> > --- a/drivers/platform/x86/hp/hp-wmi.c
> > +++ b/drivers/platform/x86/hp/hp-wmi.c
> > @@ -1825,7 +1825,7 @@ static int victus_s_gpu_thermal_profile_set(bool ctgp_enable,
> > &current_ppab_state,
> > &current_dstate,
> > &current_gpu_slowdown_temp);
> > - if (ret < 0) {
> > + if (ret) {
> > pr_warn("GPU modes not updated, unable to get slowdown temp\n");
> > return ret;
> > }
> > @@ -1907,7 +1907,7 @@ static int platform_profile_victus_s_get_ec(enum platform_profile_option *profil
> > &current_ppab_state,
> > &current_dstate,
> > &current_gpu_slowdown_temp);
> > - if (ret < 0)
> > + if (ret)
> > return ret;
> > if (current_ctgp_state == 0 && current_ppab_state == 0)
> > *profile = PLATFORM_PROFILE_LOW_POWER;
> >
>
> --
> i.