[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] [pushed] [ppc] track hid4 on exceptions to detect a possible RM_CI "leak"



changeset:   10289:3511247bfd5cb2a5f7c9f51c756713270061ca42
user:        jimix@xxxxxxxxxxxxxxxxxxxxx
date:        Thu May 18 13:25:18 2006 -0400
files:       xen/arch/ppc/exceptions.c xen/arch/ppc/ppc64/asm-offsets.c 
xen/arch/ppc/ppc64/exceptions.S xen/include/public/arch-ppc64.h
description:
[ppc] track hid4 on exceptions to detect a possible RM_CI "leak"


diff -r 8042b9eefdc5bd44cd071676dbbd3b5106f11f94 -r 
3511247bfd5cb2a5f7c9f51c756713270061ca42 xen/arch/ppc/exceptions.c
--- a/xen/arch/ppc/exceptions.c Thu May 18 13:17:37 2006 -0400
+++ b/xen/arch/ppc/exceptions.c Thu May 18 13:25:18 2006 -0400
@@ -95,6 +95,7 @@ void program_exception(struct cpu_user_r
 #else /* CRASH_DEBUG */
     show_registers(regs);
     printk("dar 0x%016lx, dsisr 0x%08x\n", mfdar(), mfdsisr());
+    printk("hid4 0x%016lx\n", regs->hid4);
     panic("%s: 0x%lx\n", __func__, cookie);
 #endif /* CRASH_DEBUG */
 }
diff -r 8042b9eefdc5bd44cd071676dbbd3b5106f11f94 -r 
3511247bfd5cb2a5f7c9f51c756713270061ca42 xen/arch/ppc/ppc64/asm-offsets.c
--- a/xen/arch/ppc/ppc64/asm-offsets.c  Thu May 18 13:17:37 2006 -0400
+++ b/xen/arch/ppc/ppc64/asm-offsets.c  Thu May 18 13:25:18 2006 -0400
@@ -44,6 +44,7 @@ void __dummy__(void)
     OFFSET(UREGS_lr, struct cpu_user_regs, lr);
     OFFSET(UREGS_ctr, struct cpu_user_regs, ctr);
     OFFSET(UREGS_xer, struct cpu_user_regs, xer);
+    OFFSET(UREGS_hid4, struct cpu_user_regs, hid4);
     OFFSET(UREGS_cr, struct cpu_user_regs, cr);
     OFFSET(UREGS_fpscr, struct cpu_user_regs, fpscr);
     DEFINE(UREGS_sizeof, sizeof(struct cpu_user_regs));
diff -r 8042b9eefdc5bd44cd071676dbbd3b5106f11f94 -r 
3511247bfd5cb2a5f7c9f51c756713270061ca42 xen/arch/ppc/ppc64/exceptions.S
--- a/xen/arch/ppc/ppc64/exceptions.S   Thu May 18 13:17:37 2006 -0400
+++ b/xen/arch/ppc/ppc64/exceptions.S   Thu May 18 13:25:18 2006 -0400
@@ -333,6 +333,9 @@ exception_vectors_end:
  * a better way, but this works for now. */
 ex_program_continued:
     SAVE_GPRS r14, r31, r1              /* save all the non-volatiles */
+    /* save hid4 for debug */
+    mfspr r14, SPRN_HID4
+    std r14, UREGS_hid4(r1)
     mr r14, r0
     EXCEPTION_SAVE_STATE r1
     mr r4, r14
diff -r 8042b9eefdc5bd44cd071676dbbd3b5106f11f94 -r 
3511247bfd5cb2a5f7c9f51c756713270061ca42 xen/include/public/arch-ppc64.h
--- a/xen/include/public/arch-ppc64.h   Thu May 18 13:17:37 2006 -0400
+++ b/xen/include/public/arch-ppc64.h   Thu May 18 13:25:18 2006 -0400
@@ -77,6 +77,7 @@ typedef struct cpu_user_regs
     uint64_t msr;
     uint64_t fpscr;
     uint64_t xer;
+    uint64_t hid4;
     uint32_t cr;
     uint32_t entry_vector;
 } cpu_user_regs_t;



_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.