diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2010-08-03 17:55:14 -0400 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-08-04 17:47:31 -0400 |
commit | 086748e52fb072ff0935ba4512e29c421bd5b716 (patch) | |
tree | 6ba433df06686c0196c1be3324876e69344a1aba /arch | |
parent | f09f6d194d85043e0eb105a577e7ad6d8170ab66 (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.c | 5 | ||||
-rw-r--r-- | arch/x86/xen/smp.c | 2 |
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) | |||
1043 | static int | 1043 | static int |
1044 | xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr) | 1044 | xen_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 | } |