summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorEmre Cecanpunar <emreleno@gmail.com>2026-04-07 17:25:11 +0300
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2026-04-09 14:46:31 +0300
commit249ddba9c0ba4453c0a6bc0e3626e7864751d940 (patch)
tree163d85c76c04eb01ce351e5150ce847b5a860718 /drivers/platform
parent7265b57fbc32782d02bdb8d865ba0d8efa209c8c (diff)
downloadlinux-next-249ddba9c0ba4453c0a6bc0e3626e7864751d940.tar.gz
linux-next-249ddba9c0ba4453c0a6bc0e3626e7864751d940.zip
platform/x86: hp-wmi: avoid cancel_delayed_work_sync from work handler
hp_wmi_apply_fan_settings() uses cancel_delayed_work_sync() to stop the keep-alive timer in AUTO mode. However, since hp_wmi_apply_fan_settings() is also called from the keep-alive handler, a race condition with a sysfs write can cause the handler to wait on itself, leading to a deadlock. Replace cancel_delayed_work_sync() with cancel_delayed_work() in hp_wmi_apply_fan_settings() to avoid the self-flush deadlock. Fixes: c203c59fb5de ("platform/x86: hp-wmi: implement fan keep-alive") Signed-off-by: Emre Cecanpunar <emreleno@gmail.com> Link: https://patch.msgid.link/20260407142515.20683-3-emreleno@gmail.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/hp/hp-wmi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-wmi.c
index eac39f68d762..79d6bc3cd223 100644
--- a/drivers/platform/x86/hp/hp-wmi.c
+++ b/drivers/platform/x86/hp/hp-wmi.c
@@ -2384,7 +2384,7 @@ static int hp_wmi_apply_fan_settings(struct hp_wmi_hwmon_priv *priv)
}
if (ret < 0)
return ret;
- cancel_delayed_work_sync(&priv->keep_alive_dwork);
+ cancel_delayed_work(&priv->keep_alive_dwork);
return 0;
default:
/* shouldn't happen */