[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] reset_system
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID 75f791c710dfcd086b80799a3498ff6e504811c5 # Parent 0f3bd7d237371e33581c82ef65faf9e1bbab3293 [IA64] reset_system Cleanup: EFI_RESET_SYSTEM now always calls domain_shutdown. machine_restart and machine_halt calls efi reset_system to do their job. Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx> --- xen/arch/ia64/linux-xen/head.S | 2 ++ xen/arch/ia64/linux-xen/smpboot.c | 1 - xen/arch/ia64/xen/domain.c | 19 ++++++++----------- xen/arch/ia64/xen/fw_emul.c | 22 +++++++++++++++------- xen/arch/ia64/xen/regionreg.c | 2 +- xen/arch/ia64/xen/xenmisc.c | 12 ------------ xen/include/asm-ia64/config.h | 6 ------ 7 files changed, 26 insertions(+), 38 deletions(-) diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/linux-xen/head.S --- a/xen/arch/ia64/linux-xen/head.S Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/linux-xen/head.S Thu Jun 15 09:51:58 2006 -0600 @@ -1010,6 +1010,7 @@ 1: br.cloop.sptk.few 1b br.ret.sptk.many rp END(ia64_delay_loop) +#ifndef XEN /* * Return a CPU-local timestamp in nano-seconds. This timestamp is * NOT synchronized across CPUs its return value must never be @@ -1062,6 +1063,7 @@ GLOBAL_ENTRY(start_kernel_thread) br.call.sptk.many rp = sys_exit;; 1: br.sptk.few 1b // not reached END(start_kernel_thread) +#endif /* XEN */ #ifdef CONFIG_IA64_BRL_EMU diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/linux-xen/smpboot.c --- a/xen/arch/ia64/linux-xen/smpboot.c Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/linux-xen/smpboot.c Thu Jun 15 09:51:58 2006 -0600 @@ -64,7 +64,6 @@ #ifdef XEN #include <xen/domain.h> #include <asm/hw_irq.h> -int ht_per_core = 1; #ifndef CONFIG_SMP cpumask_t cpu_online_map = CPU_MASK_CPU0; EXPORT_SYMBOL(cpu_online_map); diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/xen/domain.c Thu Jun 15 09:51:58 2006 -0600 @@ -891,22 +891,19 @@ int construct_dom0(struct domain *d, void machine_restart(char * __unused) { - if (running_on_sim) dummy(); - printf("machine_restart called: spinning....\n"); + if (running_on_sim) + printf ("machine_restart called. spinning...\n"); + else + (*efi.reset_system)(EFI_RESET_WARM,0,0,NULL); while(1); } void machine_halt(void) { - if (running_on_sim) dummy(); - printf("machine_halt called: spinning....\n"); - while(1); -} - -void dummy_called(char *function) -{ - if (running_on_sim) asm("break 0;;"); - printf("dummy called in %s: spinning....\n", function); + if (running_on_sim) + printf ("machine_halt called. spinning...\n"); + else + (*efi.reset_system)(EFI_RESET_SHUTDOWN,0,0,NULL); while(1); } diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/xen/fw_emul.c --- a/xen/arch/ia64/xen/fw_emul.c Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/xen/fw_emul.c Thu Jun 15 09:51:58 2006 -0600 @@ -475,13 +475,21 @@ efi_emulator (struct pt_regs *regs, IA64 switch (regs->r2) { case FW_HYPERCALL_EFI_RESET_SYSTEM: - printf("efi.reset_system called "); - if (current->domain == dom0) { - printf("(by dom0)\n "); - (*efi.reset_system)(EFI_RESET_WARM,0,0,NULL); - } else { - printf("\n"); - domain_shutdown (current->domain, SHUTDOWN_reboot); + { + u8 reason; + unsigned long val = vcpu_get_gr(v,32); + switch (val) + { + case EFI_RESET_SHUTDOWN: + reason = SHUTDOWN_poweroff; + break; + case EFI_RESET_COLD: + case EFI_RESET_WARM: + default: + reason = SHUTDOWN_reboot; + break; + } + domain_shutdown (current->domain, reason); } status = EFI_UNSUPPORTED; break; diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/xen/regionreg.c --- a/xen/arch/ia64/xen/regionreg.c Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/xen/regionreg.c Thu Jun 15 09:51:58 2006 -0600 @@ -287,7 +287,7 @@ void init_all_rr(struct vcpu *v) //rrv.rrval = v->domain->arch.metaphysical_rr0; rrv.ps = PAGE_SHIFT; rrv.ve = 1; -if (!v->vcpu_info) { printf("Stopping in init_all_rr\n"); dummy(); } +if (!v->vcpu_info) { panic("Stopping in init_all_rr\n"); } VCPU(v,rrs[0]) = -1; VCPU(v,rrs[1]) = rrv.rrval; VCPU(v,rrs[2]) = rrv.rrval; diff -r 0f3bd7d23737 -r 75f791c710df xen/arch/ia64/xen/xenmisc.c --- a/xen/arch/ia64/xen/xenmisc.c Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/arch/ia64/xen/xenmisc.c Thu Jun 15 09:51:58 2006 -0600 @@ -94,18 +94,6 @@ void console_print(char *msg) printk("console_print called, how did start_kernel return???\n"); } -void kernel_thread_helper(void) -{ - printk("kernel_thread_helper not implemented\n"); - dummy(); -} - -void sys_exit(void) -{ - printk("sys_exit not implemented\n"); - dummy(); -} - //////////////////////////////////// // called from unaligned.c //////////////////////////////////// diff -r 0f3bd7d23737 -r 75f791c710df xen/include/asm-ia64/config.h --- a/xen/include/asm-ia64/config.h Thu Jun 15 09:47:19 2006 -0600 +++ b/xen/include/asm-ia64/config.h Thu Jun 15 09:51:58 2006 -0600 @@ -235,12 +235,6 @@ struct screen_info { }; #define seq_printf(a,b...) printf(b) //#define CONFIG_BLK_DEV_INITRD // needed to reserve memory for domain0 -void dummy_called(char *function); -#define dummy() dummy_called((char *) __FUNCTION__) - -// these declarations got moved at some point, find a better place for them -extern int ht_per_core; - #ifdef CONFIG_XEN_IA64_DOM0_VP #define CONFIG_SHADOW 1 #endif _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |