diff options
author | Balbir Singh | 2016-02-01 07:03:25 +0100 |
---|---|---|
committer | Michael Ellerman | 2016-02-17 14:03:26 +0100 |
commit | 94e3d923592fcfe5585c18a0af9b196de0a13072 (patch) | |
tree | d00e6f829bbbdccb316e3b07801e20948b4f0a97 | |
parent | powerpc/perf/hv-gpci: Increase request buffer size (diff) | |
download | kernel-qcow2-linux-94e3d923592fcfe5585c18a0af9b196de0a13072.tar.gz kernel-qcow2-linux-94e3d923592fcfe5585c18a0af9b196de0a13072.tar.xz kernel-qcow2-linux-94e3d923592fcfe5585c18a0af9b196de0a13072.zip |
powerpc: Fix kgdb on little endian ppc64le
I spent some time trying to use kgdb and debugged my inability to
resume from kgdb_handle_breakpoint(). NIP is not incremented
and that leads to a loop in the debugger.
I've tested this lightly on a virtual instance with KDB enabled.
After the patch, I am able to get the "go" command to work as
expected.
Signed-off-by: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/kernel/kgdb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c index e77c3ccf8dcf..dbf098121ce6 100644 --- a/arch/powerpc/kernel/kgdb.c +++ b/arch/powerpc/kernel/kgdb.c @@ -445,7 +445,11 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code, * Global data */ struct kgdb_arch arch_kgdb_ops = { +#ifdef __LITTLE_ENDIAN__ + .gdb_bpt_instr = {0x08, 0x10, 0x82, 0x7d}, +#else .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08}, +#endif }; static int kgdb_not_implemented(struct pt_regs *regs) |