summaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/kgdb.c
diff options
context:
space:
mode:
authorTiejun Chen <tiejun.chen@windriver.com>2012-08-22 16:10:19 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-08-24 20:26:05 +1000
commit949616cf2d3095d1bb6b3d155c1cc963abd98b5c (patch)
treed43c1516a726aff6a7d53d081e89fab03a09d4ca /arch/powerpc/kernel/kgdb.c
parent572b411cb4f1b208bb8ea278752f956b3554371e (diff)
downloadlwn-949616cf2d3095d1bb6b3d155c1cc963abd98b5c.tar.gz
lwn-949616cf2d3095d1bb6b3d155c1cc963abd98b5c.zip
powerpc/kgdb: Bail out of KGDB when we've been triggered
We need to skip a breakpoint exception when it occurs after a breakpoint has already been removed. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/kgdb.c')
-rw-r--r--arch/powerpc/kernel/kgdb.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index bbabc5abb1c4..05adb69febf4 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -101,6 +101,21 @@ static int computeSignal(unsigned int tt)
return SIGHUP; /* default for things we don't know about */
}
+/**
+ *
+ * kgdb_skipexception - Bail out of KGDB when we've been triggered.
+ * @exception: Exception vector number
+ * @regs: Current &struct pt_regs.
+ *
+ * On some architectures we need to skip a breakpoint exception when
+ * it occurs after a breakpoint has been removed.
+ *
+ */
+int kgdb_skipexception(int exception, struct pt_regs *regs)
+{
+ return kgdb_isremovedbreak(regs->nip);
+}
+
static int kgdb_call_nmi_hook(struct pt_regs *regs)
{
kgdb_nmicallback(raw_smp_processor_id(), regs);