[PATCH char-misc-next 1/4] mei: make polling wait interruptible

From: Alexander Usyskin

Date: Mon Aug 31 2026 - 07:52:06 EST


Polling thread wait should be interruptible to avoid stuck task.

Reviewed-by: Menachem Adin <menachem.adin@xxxxxxxxx>
Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
---
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;

--
2.53.0