From b187c14ada3065c0b317c70cc97f27035edd0bc8 Mon Sep 17 00:00:00 2001 From: Igor Druzhinin Date: Thu, 5 Mar 2020 11:32:24 +0100 Subject: [PATCH] x86/suspend: disable watchdog before calling console_start_sync() ... and enable it after exiting S-state. Otherwise accumulated output in serial buffer might easily trigger the watchdog if it's still enabled after entering sync transmission mode. The issue observed on machines which, unfortunately, generate non-0 output in CPU offline callbacks. Signed-off-by: Igor Druzhinin Reviewed-by: Jan Beulich master commit: 5e08f5f56c9955d853c26c985b6fb1fb45d0355d master date: 2020-01-29 15:06:10 +0100 --- xen/arch/x86/acpi/power.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c index a704c7c340..4c12794809 100644 --- a/xen/arch/x86/acpi/power.c +++ b/xen/arch/x86/acpi/power.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -194,6 +195,7 @@ static int enter_state(u32 state) acpi_sleep_prepare(state); + watchdog_disable(); console_start_sync(); printk("Entering ACPI S%d state.\n", state); @@ -206,6 +208,7 @@ static int enter_state(u32 state) system_state = SYS_STATE_resume; device_power_up(error); console_end_sync(); + watchdog_enable(); error = -EIO; goto done; } @@ -252,6 +255,7 @@ static int enter_state(u32 state) tboot_s3_error(error); console_end_sync(); + watchdog_enable(); microcode_resume_cpu(0); -- 2.30.2