From: Keir Fraser Date: Thu, 29 May 2008 08:42:59 +0000 (+0100) Subject: x86: Fix reboot failure after S3 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14207^2~10 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9d5051f32bb154d62030084e44c7bcd4662d5395;p=xen.git x86: Fix reboot failure after S3 "warm reset vector" is used to start APs. At booting time, it is set by BP, and cleared after all APs have started. When do S3, similar work need to do. However, when enable non-boot CPUs after S3, Xen just sets this vector, but forgets to clear it after APs startup. Signed-off-by: Huacai Chen --- diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 1d7c81a85d..6721b9f6c5 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -1391,6 +1391,11 @@ void enable_nonboot_cpus(void) panic("Not enough cpus"); } cpus_clear(frozen_cpus); + + /* + * Cleanup possible dangling ends after sleep... + */ + smpboot_restore_warm_reset_vector(); } #else /* ... !CONFIG_HOTPLUG_CPU */ int __cpu_disable(void)