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
|