]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
platform/x86: hp-wmi: avoid cancel_delayed_work_sync from work handler
authorEmre Cecanpunar <emreleno@gmail.com>
Tue, 7 Apr 2026 14:25:11 +0000 (17:25 +0300)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 9 Apr 2026 11:46:31 +0000 (14:46 +0300)
commit249ddba9c0ba4453c0a6bc0e3626e7864751d940
tree163d85c76c04eb01ce351e5150ce847b5a860718
parent7265b57fbc32782d02bdb8d865ba0d8efa209c8c
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>
drivers/platform/x86/hp/hp-wmi.c