aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2010-08-03 17:55:14 -0400
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-08-04 17:47:31 -0400
commit086748e52fb072ff0935ba4512e29c421bd5b716 (patch)
tree6ba433df06686c0196c1be3324876e69344a1aba /arch
parentf09f6d194d85043e0eb105a577e7ad6d8170ab66 (diff)
xen/panic: use xen_reboot and fix smp_send_stop
Offline vcpu when using stop_self. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/xen/enlighten.c5
-rw-r--r--arch/x86/xen/smp.c2
2 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index d99522e8f033..3c4da8bee06f 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1043,10 +1043,7 @@ static void xen_crash_shutdown(struct pt_regs *regs)
1043static int 1043static int
1044xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr) 1044xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr)
1045{ 1045{
1046 struct sched_shutdown r = { .reason = SHUTDOWN_crash}; 1046 xen_reboot(SHUTDOWN_crash);
1047
1048 if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
1049 BUG();
1050 return NOTIFY_DONE; 1047 return NOTIFY_DONE;
1051} 1048}
1052 1049
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index a29693fd3138..25f232b18a82 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -394,6 +394,8 @@ static void stop_self(void *v)
394 load_cr3(swapper_pg_dir); 394 load_cr3(swapper_pg_dir);
395 /* should set up a minimal gdt */ 395 /* should set up a minimal gdt */
396 396
397 set_cpu_online(cpu, false);
398
397 HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL); 399 HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL);
398 BUG(); 400 BUG();
399} 401}