From: Keir Fraser Date: Fri, 30 May 2008 15:36:05 +0000 (+0100) Subject: x86: Fix reboot failure after S3 X-Git-Tag: 3.2.2-rc1~36 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6de437f47cc8550945c3ed9f27d9d9523f24b4c0;p=people%2Fvhanquez%2Fxen.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 xen-unstable changeset: 17751:564c9be76aa496fda12923ffca5c4ca41a6c395f xen-unstable date: Thu May 29 09:42:59 2008 +0100 --- diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 32668e945..2c77bb3af 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -1362,6 +1362,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)