diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-11-29 17:16:53 -0500 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-11-29 17:16:53 -0500 |
commit | 31e323cca9d5c8afd372976c35a5d46192f540d1 (patch) | |
tree | 2af67d38071b9e0767743e020a6833e8e5fecc93 | |
parent | 3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (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.c | 4 |
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 | } |