git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[pandora-kernel.git]
/
arch
/
powerpc
/
kernel
/
kgdb.c
diff --git
a/arch/powerpc/kernel/kgdb.c
b/arch/powerpc/kernel/kgdb.c
index
41bada0
..
82a7b22
100644
(file)
--- a/
arch/powerpc/kernel/kgdb.c
+++ b/
arch/powerpc/kernel/kgdb.c
@@
-20,6
+20,7
@@
#include <linux/smp.h>
#include <linux/signal.h>
#include <linux/ptrace.h>
#include <linux/smp.h>
#include <linux/signal.h>
#include <linux/ptrace.h>
+#include <linux/kdebug.h>
#include <asm/current.h>
#include <asm/processor.h>
#include <asm/machdep.h>
#include <asm/current.h>
#include <asm/processor.h>
#include <asm/machdep.h>
@@
-115,7
+116,8
@@
void kgdb_roundup_cpus(unsigned long flags)
/* KGDB functions to use existing PowerPC64 hooks. */
static int kgdb_debugger(struct pt_regs *regs)
{
/* KGDB functions to use existing PowerPC64 hooks. */
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))
return 0;
if (user_mode(regs))
return 0;
- if (kgdb_handle_exception(
0
, SIGTRAP, 0, regs) != 0)
+ if (kgdb_handle_exception(
1
, SIGTRAP, 0, regs) != 0)
return 0;
if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr))
return 0;
if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr))
@@
-309,6
+311,11
@@
void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
(unsigned long)(((void *)gdb_regs) + NUMREGBYTES));
}
(unsigned long)(((void *)gdb_regs) + NUMREGBYTES));
}
+void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
+{
+ regs->nip = pc;
+}
+
/*
* This function does PowerPC specific procesing for interfacing to gdb.
*/
/*
* This function does PowerPC specific procesing for interfacing to gdb.
*/