[PATCH v4 0/3] Disable Suspend-to-Idle in Hyper-V and Fix Hibernation Interruptions

From: Erni Sri Satya Vennela
Date: Mon Dec 16 2024 - 23:17:29 EST


It has been reported that Hyper-V VM users can unintentionally abort
hibernation by mouse or keyboard movements. To address this issue,
we have decided to remove the wakeup events for the Hyper-V keyboard
and mouse driver. However, this change introduces another problem:
Suspend-to-Idle brings the system down with no method to wake it back up.

Given that there are no real users of Suspend-to-Idle in Hyper-V,
we have decided to disable this feature for VMBus. This results in:

$echo freeze > /sys/power/state
> bash: echo: write error: Operation not supported

The keyboard and mouse were previously registered as wakeup sources to
interrupt the freeze operation in a VM. Since the freeze operation itself
is no longer supported, we are disabling them as wakeup events.

This patchset ensures that the system remains stable and prevents
unintended interruptions during hibernation.
---
Changes in v4:
* Make keyboard and mouse wakeup capable by adding
device_set_wakeup_capable but not enabling them as wakeup sources.
https://lore.kernel.org/lkml/Zv-j0qtWXsDz4Hah@xxxxxxxxxx/
* Remove device_wakeup_init() call in mousevsc_remove()
v3:https://lore.kernel.org/lkml/1727685708-3524-1-git-send-email-ernis@xxxxxxxxxxxxxxxxxxx/

Changes in v3:
* Add 'Cc: stable@xxxxxxxxxxxxxxx' in sign-off area.
v2:https://lore.kernel.org/lkml/1727683917-31485-1-git-send-email-ernis@xxxxxxxxxxxxxxxxxxx/

Changes in v2:
* Add "#define vmbus_freeze NULL" when CONFIG_PM_SLEEP is not
enabled.
* Change commit message to clarify that this change is specifc to
Hyper-V based VMs.
v1:https://lore.kernel.org/lkml/1726176470-13133-1-git-send-email-ernis@xxxxxxxxxxxxxxxxxxx/
---

Erni Sri Satya Vennela (3):
Drivers: hv: vmbus: Disable Suspend-to-Idle for VMBus
Input: hyperv-keyboard - disable as wakeup source
HID: hyperv: disable as wakeup source

drivers/hid/hid-hyperv.c | 3 +--
drivers/hv/vmbus_drv.c | 16 +++++++++++++++-
drivers/input/serio/hyperv-keyboard.c | 2 +-
3 files changed, 17 insertions(+), 4 deletions(-)

--
2.34.1