From: Dexuan Cui <decui@xxxxxxxxxxxxx> Sent: Tuesday, November 19, 2019 11:14 PM > > During the suspend process and resume process, if there is any keyboard > event, there is a small chance the suspend and the resume process can be > aborted because of hv_kbd_on_receive() -> pm_wakeup_hard_event(). > > This behavior can be avoided by disabling the Hyper-V keyboard device as > a wakeup source: > > echo disabled > /sys/bus/vmbus/drivers/hyperv_keyboard/XXX/power/wakeup > (XXX is the device's GUID). I'd like to see a more descriptive commit message, along the lines of: Add suspend() and resume() functions so the Hyper-V virtual keyboard can participate in VM hibernation. Note that the keyboard is a "wakeup" device that could abort an in-progress hibernation if there is keyboard event. No attempt is made to suppress this behavior. If desired, a sysadmin can disable the keyboard as a wakeup device using standard mechanisms such as: echo disabled > /sys/bus/vmbus/drivers/hyperv_keyboard/XXX/power/wakeup (where XXX is the device's GUID) > > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > --- > > This patch is basically a pure Hyper-V specific change. I suggest it should > go through the Hyper-V tree: > https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/log/?h=hyperv-next > > Changes in v2: > Removed the "struct notifier_block pm_nb;" after the discussion > with Dmitry Torokhov: > > https://lore.kernel.org/lkml/PU1P153MB016914A7C827CA35D7FEB66ABF8B0@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/#m8948c711301220a36a1a413eead74cd2fb6dcac1> > > drivers/input/serio/hyperv-keyboard.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > Notwithstanding the suggestion on the commit message, Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>