|
@@ -20,6 +20,7 @@
|
|
#include <linux/smp.h>
|
|
#include <linux/smp.h>
|
|
#include <linux/signal.h>
|
|
#include <linux/signal.h>
|
|
#include <linux/ptrace.h>
|
|
#include <linux/ptrace.h>
|
|
|
|
+#include <linux/kdebug.h>
|
|
#include <asm/current.h>
|
|
#include <asm/current.h>
|
|
#include <asm/processor.h>
|
|
#include <asm/processor.h>
|
|
#include <asm/machdep.h>
|
|
#include <asm/machdep.h>
|
|
@@ -115,7 +116,8 @@ void kgdb_roundup_cpus(unsigned long flags)
|
|
/* KGDB functions to use existing PowerPC64 hooks. */
|
|
/* KGDB functions to use existing PowerPC64 hooks. */
|
|
static int kgdb_debugger(struct pt_regs *regs)
|
|
static int kgdb_debugger(struct pt_regs *regs)
|
|
{
|
|
{
|
|
- return kgdb_handle_exception(0, computeSignal(TRAP(regs)), 0, regs);
|
|
|
|
|
|
+ return !kgdb_handle_exception(1, computeSignal(TRAP(regs)),
|
|
|
|
+ DIE_OOPS, regs);
|
|
}
|
|
}
|
|
|
|
|
|
static int kgdb_handle_breakpoint(struct pt_regs *regs)
|
|
static int kgdb_handle_breakpoint(struct pt_regs *regs)
|
|
@@ -123,7 +125,7 @@ static int kgdb_handle_breakpoint(struct pt_regs *regs)
|
|
if (user_mode(regs))
|
|
if (user_mode(regs))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- if (kgdb_handle_exception(0, SIGTRAP, 0, regs) != 0)
|
|
|
|
|
|
+ if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr))
|
|
if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr))
|