From fa013b91c082fff6bbf8990299dff0e6a567ccbe Mon Sep 17 00:00:00 2001 From: Alexander Usyskin Date: Mon, 31 Aug 2026 14:38:31 +0300 Subject: [PATCH] mei: make polling wait interruptible Polling thread wait should be interruptible to avoid stuck task. Reviewed-by: Menachem Adin Signed-off-by: Alexander Usyskin Link: https://patch.msgid.link/20260831-cri_polling-v1-1-d927315e6598@intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/misc/mei/gsc-me.c | 2 +- drivers/misc/mei/hw-me.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/misc/mei/gsc-me.c b/drivers/misc/mei/gsc-me.c index 376840b2c354..b38ddb04f2e8 100644 --- a/drivers/misc/mei/gsc-me.c +++ b/drivers/misc/mei/gsc-me.c @@ -242,7 +242,7 @@ static int __maybe_unused mei_gsc_pm_runtime_resume(struct device *device) if (mei_me_hw_use_polling(hw)) { hw->is_active = true; - wake_up(&hw->wait_active); + wake_up_interruptible(&hw->wait_active); } mutex_unlock(&dev->device_lock); diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c index e7fbc02fb70f..ef7e1289ad7e 100644 --- a/drivers/misc/mei/hw-me.c +++ b/drivers/misc/mei/hw-me.c @@ -1441,9 +1441,9 @@ int mei_me_polling_thread(void *_dev) struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr; - wait_event_timeout(hw->wait_active, - hw->is_active || kthread_should_stop(), - msecs_to_jiffies(MEI_POLLING_TIMEOUT_IDLE)); + wait_event_interruptible_timeout(hw->wait_active, + hw->is_active || kthread_should_stop(), + msecs_to_jiffies(MEI_POLLING_TIMEOUT_IDLE)); if (kthread_should_stop()) break;