| From 834b2964b7ab047610da038e42d61dc8dac6339a Mon Sep 17 00:00:00 2001 |
| From: Rabin Vincent <rabin@rab.in> |
| Date: Tue, 26 Oct 2010 12:49:00 -0500 |
| Subject: kgdb,arm: fix register dump |
| |
| From: Rabin Vincent <rabin@rab.in> |
| |
| commit 834b2964b7ab047610da038e42d61dc8dac6339a upstream. |
| |
| DBG_MAX_REG_NUM incorrectly had the number of indices in the GDB regs |
| array rather than the number of registers, leading to an oops when the |
| "rd" command is used in KDB. |
| |
| Signed-off-by: Rabin Vincent <rabin@rab.in> |
| Signed-off-by: Jason Wessel <jason.wessel@windriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/arm/include/asm/kgdb.h | 5 +++-- |
| arch/arm/kernel/kgdb.c | 2 +- |
| 2 files changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/arch/arm/include/asm/kgdb.h |
| +++ b/arch/arm/include/asm/kgdb.h |
| @@ -70,7 +70,8 @@ extern int kgdb_fault_expected; |
| #define _GP_REGS 16 |
| #define _FP_REGS 8 |
| #define _EXTRA_REGS 2 |
| -#define DBG_MAX_REG_NUM (_GP_REGS + (_FP_REGS * 3) + _EXTRA_REGS) |
| +#define GDB_MAX_REGS (_GP_REGS + (_FP_REGS * 3) + _EXTRA_REGS) |
| +#define DBG_MAX_REG_NUM (_GP_REGS + _FP_REGS + _EXTRA_REGS) |
| |
| #define KGDB_MAX_NO_CPUS 1 |
| #define BUFMAX 400 |
| @@ -93,7 +94,7 @@ extern int kgdb_fault_expected; |
| #define _SPT 13 |
| #define _LR 14 |
| #define _PC 15 |
| -#define _CPSR (DBG_MAX_REG_NUM - 1) |
| +#define _CPSR (GDB_MAX_REGS - 1) |
| |
| /* |
| * So that we can denote the end of a frame for tracing, |
| --- a/arch/arm/kernel/kgdb.c |
| +++ b/arch/arm/kernel/kgdb.c |
| @@ -79,7 +79,7 @@ sleeping_thread_to_gdb_regs(unsigned lon |
| return; |
| |
| /* Initialize to zero */ |
| - for (regno = 0; regno < DBG_MAX_REG_NUM; regno++) |
| + for (regno = 0; regno < GDB_MAX_REGS; regno++) |
| gdb_regs[regno] = 0; |
| |
| /* Otherwise, we have only some registers from switch_to() */ |