]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86: Fix reboot failure after S3
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 30 May 2008 15:36:05 +0000 (16:36 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 30 May 2008 15:36:05 +0000 (16:36 +0100)
"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 <huacai.chen@intel.com>
xen-unstable changeset:   17751:564c9be76aa496fda12923ffca5c4ca41a6c395f
xen-unstable date:        Thu May 29 09:42:59 2008 +0100

xen/arch/x86/smpboot.c

index 32668e9455d5f5fa097aee93035064f24aa76ef8..2c77bb3afc56f9d560215dd3cbf09bb2db1e2de6 100644 (file)
@@ -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)