Unverified Commit 863810d4 authored by Yufei CHENG's avatar Yufei CHENG Committed by Ilpo Järvinen
Browse files

platform/x86: lenovo: wmi-other: Fix uninitialized variable in lwmi_om_hwmon_write()



When the flag relax_fan_constraint is set, local variable 'raw'
is never assigned, and lwmi_om_hwmon_write() will pass uninitialized
value to lwmi_om_fan_get_set() resulting in undefined behavior.

This flag allows user to bypass minimum fan RPM divisor rounding,
but assignment to 'raw' only happens in the non-relaxed path.
Fix by defaulting 'raw' to user provided 'val' in the else branch.

Fixes: 51ed3428 ("platform/x86: lenovo-wmi-other: Add HWMON for fan reporting/tuning")
Reviewed-by: default avatarRong Zhang <i@rong.moe>
Signed-off-by: default avatarYufei CHENG <cd345al@gmail.com>
Link: https://patch.msgid.link/20260426165034.9073-1-cd345al@gmail.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent c2d4b764
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -349,6 +349,8 @@ static int lwmi_om_hwmon_write(struct device *dev, enum hwmon_sensor_types type,
			 */
			if (!relax_fan_constraint)
				raw = val / LWMI_FAN_DIV * LWMI_FAN_DIV;
			else
				raw = val;

			err = lwmi_om_fan_get_set(priv, channel, &raw, true);
			if (err)