diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-30 21:57:59 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-30 21:57:59 -0700 |
commit | 5afe27380bc42454254c9c83c045240249c15e35 (patch) | |
tree | e7bdb90ea5e42b779b9ddeea9d945638da33eb23 /arch/sparc64/mm | |
parent | c9b23e0c302377ccff700bee663b878d04e4ef3a (diff) | |
download | op-kernel-dev-5afe27380bc42454254c9c83c045240249c15e35.zip op-kernel-dev-5afe27380bc42454254c9c83c045240249c15e35.tar.gz |
sparc64: Make global reg dumping even more useful.
Record one more level of stack frame program counter.
Particularly when lockdep and all sorts of spinlock debugging is
enabled, figuring out the caller of spin_lock() is difficult when the
cpu is stuck on the lock.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/mm')
-rw-r--r-- | arch/sparc64/mm/ultra.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 4c8ca13..77ba885 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S @@ -531,6 +531,13 @@ xcall_fetch_glob_regs: stx %g7, [%g1 + GR_SNAP_TNPC] stx %o7, [%g1 + GR_SNAP_O7] stx %i7, [%g1 + GR_SNAP_I7] + /* Don't try this at home kids... */ + rdpr %cwp, %g2 + sub %g2, 1, %g7 + wrpr %g7, %cwp + mov %i7, %g7 + wrpr %g2, %cwp + stx %g7, [%g1 + GR_SNAP_RPC] sethi %hi(trap_block), %g7 or %g7, %lo(trap_block), %g7 sllx %g2, TRAP_BLOCK_SZ_SHIFT, %g2 |