From: Igor Druzhinin Date: Wed, 29 Jan 2020 14:06:10 +0000 (+0100) Subject: x86/suspend: disable watchdog before calling console_start_sync() X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~785 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5e08f5f56c9955d853c26c985b6fb1fb45d0355d;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 --- diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c index 8078352312..feb0f6ce20 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 @@ -223,6 +224,7 @@ static int enter_state(u32 state) acpi_sleep_prepare(state); + watchdog_disable(); console_start_sync(); printk("Entering ACPI S%d state.\n", state); @@ -235,6 +237,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; } @@ -281,6 +284,7 @@ static int enter_state(u32 state) tboot_s3_error(error); console_end_sync(); + watchdog_enable(); microcode_update_one(true);