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 | blackbird-op-linux-5afe27380bc42454254c9c83c045240249c15e35.tar.gz blackbird-op-linux-5afe27380bc42454254c9c83c045240249c15e35.zip |
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 4c8ca131ffaf..77ba88597cc5 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 |