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) |
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 4c8ca131ffa..77ba88597cc 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 |