summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-11-29 14:16:53 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-21 12:43:48 -0700
commit7ee77118ebd4b01892adaef73633f61dcffc57b3 (patch)
tree6e055ec7b397ec58c65e959c52ef8527cd593fc4 /arch
parentdaf650021ea06a0490f2cbb9709c422969b1d3ea (diff)
downloadkernel-common-7ee77118ebd4b01892adaef73633f61dcffc57b3.tar.gz
kernel-common-7ee77118ebd4b01892adaef73633f61dcffc57b3.tar.bz2
kernel-common-7ee77118ebd4b01892adaef73633f61dcffc57b3.zip
xen: don't bother to stop other cpus on shutdown/reboot
commit 31e323cca9d5c8afd372976c35a5d46192f540d1 upstream. 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: Alok Kataria <akataria@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-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 821dc579391a..4f807e6d83b5 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -999,10 +999,6 @@ static void xen_reboot(int reason)
{
struct sched_shutdown r = { .reason = reason };
-#ifdef CONFIG_SMP
- stop_other_cpus();
-#endif
-
if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
BUG();
}