aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-11-29 17:16:53 -0500
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-11-29 17:16:53 -0500
commit31e323cca9d5c8afd372976c35a5d46192f540d1 (patch)
tree2af67d38071b9e0767743e020a6833e8e5fecc93
parent3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (diff)
xen: don't bother to stop other cpus on shutdown/reboot
Xen will shoot all the VCPUs when we do a shutdown hypercall, so there's no need to do it manually. In any case it will fail because all the IPI irqs have been pulled down by this point, so the cross-CPU calls will simply hang forever. Until change 76fac077db6b34e2c6383a7b4f3f4f7b7d06d8ce the function calls were not synchronously waited for, so this wasn't apparent. However after that change the calls became synchronous leading to a hang on shutdown on multi-VCPU guests. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Stable Kernel <stable@kernel.org> Cc: Alok Kataria <akataria@vmware.com>
-rw-r--r--arch/x86/xen/enlighten.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 235c0f4d3861..4a5973abefc8 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1016,10 +1016,6 @@ static void xen_reboot(int reason)
1016{ 1016{
1017 struct sched_shutdown r = { .reason = reason }; 1017 struct sched_shutdown r = { .reason = reason };
1018 1018
1019#ifdef CONFIG_SMP
1020 stop_other_cpus();
1021#endif
1022
1023 if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r)) 1019 if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
1024 BUG(); 1020 BUG();
1025} 1021}