Cihula, Joseph
2009-Jan-20 05:50 UTC
[Xen-devel] [PATCH] txt: 5/6 - single tboot entry point for shutdown
tboot removed the shutdown_entry32 and shutdown_entry64 from tboot_shared_t and now has just a single shutdown_entry field. Signed-off-by: Joseph Cihula <joseph.cihula@intel.com> diff -r feb5e3c4a82d -r bc2e19b70b3d xen/arch/x86/tboot.c --- a/xen/arch/x86/tboot.c Fri Jan 16 13:44:38 2009 -0800 +++ b/xen/arch/x86/tboot.c Fri Jan 16 13:45:37 2009 -0800 @@ -52,8 +52,7 @@ void __init tboot_probe(void) printk("TBOOT: found shared page at phys addr %lx:\n", p_tboot_shared); printk(" version: %d\n", tboot_shared->version); printk(" log_addr: 0x%08x\n", tboot_shared->log_addr); - printk(" shutdown_entry32: 0x%08x\n", tboot_shared->shutdown_entry32); - printk(" shutdown_entry64: 0x%08x\n", tboot_shared->shutdown_entry64); + printk(" shutdown_entry: 0x%08x\n", tboot_shared->shutdown_entry); printk(" shutdown_type: %d\n", tboot_shared->shutdown_type); printk(" s3_tb_wakeup_entry: 0x%08x\n", tboot_shared->s3_tb_wakeup_entry); printk(" s3_k_wakeup_entry: 0x%08x\n", tboot_shared->s3_k_wakeup_entry); @@ -115,11 +114,7 @@ void tboot_shutdown(uint32_t shutdown_ty write_ptbase(idle_vcpu[0]); -#ifdef __x86_64__ - asm volatile ( "call *%%rdi" :: "D" (g_tboot_shared->shutdown_entry64) ); -#else - asm volatile ( "call *%0" :: "r" (g_tboot_shared->shutdown_entry32) ); -#endif + ((void(*)(void))(unsigned long)g_tboot_shared->shutdown_entry)(); BUG(); /* should not reach here */ } diff -r feb5e3c4a82d -r bc2e19b70b3d xen/include/asm-x86/tboot.h --- a/xen/include/asm-x86/tboot.h Fri Jan 16 13:44:38 2009 -0800 +++ b/xen/include/asm-x86/tboot.h Fri Jan 16 13:45:37 2009 -0800 @@ -69,8 +69,7 @@ typedef struct __packed { uuid_t uuid; /* {663C8DFF-E8B3-4b82-AABF-19EA4D057A08} */ uint32_t version; /* Version number; currently supports 0.3 */ uint32_t log_addr; /* physical addr of tb_log_t log */ - uint32_t shutdown_entry32; /* entry point for tboot shutdown from 32b */ - uint32_t shutdown_entry64; /* entry point for tboot shutdown from 64b */ + uint32_t shutdown_entry; /* entry point for tboot shutdown */ uint32_t shutdown_type; /* type of shutdown (TB_SHUTDOWN_*) */ uint32_t s3_tb_wakeup_entry;/* entry point for tboot s3 wake up */ uint32_t s3_k_wakeup_entry; /* entry point for xen s3 wake up */ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel