powerpc/xmon: Use STACK_FRAME_OVERHEAD in xmon_show_stack()
authorMichael Ellerman <michael@ellerman.id.au>
Tue, 9 Oct 2012 04:20:35 +0000 (04:20 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 15 Nov 2012 01:59:55 +0000 (12:59 +1100)
We use STACK_FRAME_OVERHEAD in the exception vectors to establish
the exception frame, so it should be good enough to use here.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/xmon/xmon.c

index abf6be4..d940234 100644 (file)
@@ -1286,12 +1286,6 @@ static int xmon_depth_to_print = 64;
 #define LRSAVE_OFFSET          (STACK_FRAME_LR_SAVE * sizeof(unsigned long))
 #define MARKER_OFFSET          (STACK_FRAME_MARKER * sizeof(unsigned long))
 
-#ifdef __powerpc64__
-#define REGS_OFFSET            0x70
-#else
-#define REGS_OFFSET            16
-#endif
-
 static void xmon_show_stack(unsigned long sp, unsigned long lr,
                            unsigned long pc)
 {
@@ -1355,10 +1349,10 @@ static void xmon_show_stack(unsigned long sp, unsigned long lr,
                   an exception frame. */
                if (mread(sp + MARKER_OFFSET, &marker, sizeof(unsigned long))
                    && marker == STACK_FRAME_REGS_MARKER) {
-                       if (mread(sp + REGS_OFFSET, &regs, sizeof(regs))
+                       if (mread(sp + STACK_FRAME_OVERHEAD, &regs, sizeof(regs))
                            != sizeof(regs)) {
                                printf("Couldn't read registers at %lx\n",
-                                      sp + REGS_OFFSET);
+                                      sp + STACK_FRAME_OVERHEAD);
                                break;
                        }
                        printf("--- Exception: %lx %s at ", regs.trap,