diff options
author | Chris Smith <chris.smith@st.com> | 2008-09-05 04:15:39 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-09-07 21:35:05 -0400 |
commit | d39f5450146ff39f66cfde9d5184420627d0ac51 (patch) | |
tree | f71bf54b0e633b5a0cf4ca9a72809ba26c813bda /arch/sh/kernel/traps_32.c | |
parent | b6c20e4290a1ef92bcef5ec9dd8e5c7d036153aa (diff) |
sh: Add kprobes support.
Initial support for kprobes/kretprobes for 32-bit SH platforms.
[ General cleanup and some rework for the kretprobe hash lock. -- PFM ]
Signed-off-by: Chris Smith <chris.smith@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/traps_32.c')
-rw-r--r-- | arch/sh/kernel/traps_32.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index 4901f6732162..862667a341fd 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
28 | #include <asm/fpu.h> | 28 | #include <asm/fpu.h> |
29 | #include <asm/kprobes.h> | ||
29 | 30 | ||
30 | #ifdef CONFIG_SH_KGDB | 31 | #ifdef CONFIG_SH_KGDB |
31 | #include <asm/kgdb.h> | 32 | #include <asm/kgdb.h> |
@@ -743,6 +744,10 @@ asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5, | |||
743 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); | 744 | struct pt_regs *regs = RELOC_HIDE(&__regs, 0); |
744 | unsigned long error_code; | 745 | unsigned long error_code; |
745 | struct task_struct *tsk = current; | 746 | struct task_struct *tsk = current; |
747 | |||
748 | if (kprobe_handle_illslot(regs->pc) == 0) | ||
749 | return; | ||
750 | |||
746 | #ifdef CONFIG_SH_FPU_EMU | 751 | #ifdef CONFIG_SH_FPU_EMU |
747 | unsigned short inst = 0; | 752 | unsigned short inst = 0; |
748 | 753 | ||