Re: [PATCH 0/5] platform/x86: hp-wmi: fix bugs in Victus S fan control
From: Krishna Chomal
Date: Sun Mar 22 2026 - 12:27:23 EST
On Sat, Mar 21, 2026 at 02:55:52AM +0300, Emre Cecanpunar wrote:
This series fixes five bugs in the hwmon fan control code added for
HP Victus S laptops:
- Return values from WMI calls were silently discarded in two paths
of hp_wmi_apply_fan_settings(), and the function's own return value
was ignored by both of its callers.
- cancel_delayed_work_sync() was called from inside the work handler
it was trying to cancel, causing a potential deadlock.
- schedule_delayed_work() does not reset a pending timer, so rapid
back-to-back fan updates did not extend the keep-alive window.
- u8 arithmetic was used to compute a signed delta, producing silent
unsigned wrap-around on malformed firmware fan tables.
- mode and pwm fields in hp_wmi_hwmon_priv were accessed from both
sysfs and workqueue context without any synchronisation.
Patches are ordered so that each one applies cleanly on top of the
previous. Patches 1-4 are independent fixes; patch 5 (locking) builds
on patch 2 (cancel_delayed_work) to avoid a lock-ordering issue.
Emre Cecanpunar (5):
platform/x86: hp-wmi: fix ignored return values in fan settings
platform/x86: hp-wmi: avoid cancel_delayed_work_sync from work handler
platform/x86: hp-wmi: use mod_delayed_work to reset keep-alive timer
platform/x86: hp-wmi: fix u8 underflow in gpu_delta calculation
platform/x86: hp-wmi: add locking for concurrent hwmon access
drivers/platform/x86/hp/hp-wmi.c | 59 ++++++++++++++++++++++----------
1 file changed, 41 insertions(+), 18 deletions(-)
--
2.53.0
Hi Emre,
Thank you for reviewing and catching these bugs. As this was my first
attempt with delayed workqueues, I appreciate the bug fixes, specially
regarding the deadlock.
I have tested this series on my hardware (board ID: 8C78) and can
confirm that the fans still behave correctly with the improvements.