aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/kprobes.c
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2007-12-03 17:22:36 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-01-26 10:25:17 -0500
commit796969104cab0d454dbc792ad0d12a4f365a8564 (patch)
tree214eebbe0c8cdee597184feb365c60b574650f6a /arch/arm/kernel/kprobes.c
parent785d3cd286f0bf67d1bf692559b9ae5de12678f5 (diff)
ARM kprobes: special hook for the kprobes breakpoint handler
The kprobes code is already able to cope with reentrant probes, so its handler must be called outside of the region protected by undef_lock. If ever this lock is released when handlers are called then this commit could be reverted. Signed-off-by: Nicolas Pitre <nico@marvell.com>
Diffstat (limited to 'arch/arm/kernel/kprobes.c')
-rw-r--r--arch/arm/kernel/kprobes.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c
index 450ee2cbfe17..a22a98c43ca5 100644
--- a/arch/arm/kernel/kprobes.c
+++ b/arch/arm/kernel/kprobes.c
@@ -26,12 +26,6 @@
26#include <asm/traps.h> 26#include <asm/traps.h>
27#include <asm/cacheflush.h> 27#include <asm/cacheflush.h>
28 28
29/*
30 * This undefined instruction must be unique and
31 * reserved solely for kprobes' use.
32 */
33#define KPROBE_BREAKPOINT_INSTRUCTION 0xe7f001f8
34
35#define MIN_STACK_SIZE(addr) \ 29#define MIN_STACK_SIZE(addr) \
36 min((unsigned long)MAX_STACK_SIZE, \ 30 min((unsigned long)MAX_STACK_SIZE, \
37 (unsigned long)current_thread_info() + THREAD_START_SP - (addr)) 31 (unsigned long)current_thread_info() + THREAD_START_SP - (addr))
@@ -206,7 +200,7 @@ void __kprobes kprobe_handler(struct pt_regs *regs)
206 } 200 }
207} 201}
208 202
209static int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr) 203int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr)
210{ 204{
211 kprobe_handler(regs); 205 kprobe_handler(regs);
212 return 0; 206 return 0;