From: Igor Druzhinin Date: Thu, 5 Mar 2020 10:32:24 +0000 (+0100) Subject: x86/suspend: disable watchdog before calling console_start_sync() X-Git-Tag: archive/raspbian/4.11.4-1+rpi1^2~58^2~25 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b187c14ada3065c0b317c70cc97f27035edd0bc8;p=xen.git 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 --- 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);