diff options
author | Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> | 2006-01-09 23:52:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-10 11:01:40 -0500 |
commit | e597c2984c64609c6e1e1ac803f00f7550705860 (patch) | |
tree | 199bac97827782dcd73283018ec5692b63812fac /arch | |
parent | f709b122343fb9a010b6cf2d5559641f1820f7c9 (diff) |
[PATCH] kprobes: arch_remove_kprobe
Currently arch_remove_kprobes() is only implemented/required for x86_64 and
powerpc. All other architecture like IA64, i386 and sparc64 implementes a
dummy function which is being called from arch independent kprobes.c file.
This patch removes the dummy functions and replaces it with
#define arch_remove_kprobe(p, s) do { } while(0)
Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/kprobes.c | 4 | ||||
-rw-r--r-- | arch/ia64/kernel/kprobes.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/kprobes.c | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/kprobes.c | 4 | ||||
-rw-r--r-- | arch/x86_64/kernel/kprobes.c | 4 |
5 files changed, 6 insertions, 14 deletions
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index 68fe10250486..2f372dbd34fd 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -77,10 +77,6 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
77 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); | 77 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); |
78 | } | 78 | } |
79 | 79 | ||
80 | void __kprobes arch_remove_kprobe(struct kprobe *p) | ||
81 | { | ||
82 | } | ||
83 | |||
84 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | 80 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) |
85 | { | 81 | { |
86 | kcb->prev_kprobe.kp = kprobe_running(); | 82 | kcb->prev_kprobe.kp = kprobe_running(); |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index 89a70400c4f6..4de7f6759093 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -467,10 +467,6 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
467 | flush_icache_range(arm_addr, arm_addr + sizeof(bundle_t)); | 467 | flush_icache_range(arm_addr, arm_addr + sizeof(bundle_t)); |
468 | } | 468 | } |
469 | 469 | ||
470 | void __kprobes arch_remove_kprobe(struct kprobe *p) | ||
471 | { | ||
472 | } | ||
473 | |||
474 | /* | 470 | /* |
475 | * We are resuming execution after a single step fault, so the pt_regs | 471 | * We are resuming execution after a single step fault, so the pt_regs |
476 | * structure reflects the register state after we executed the instruction | 472 | * structure reflects the register state after we executed the instruction |
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 2cd32dd6898b..93444e32fccd 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
@@ -80,9 +80,11 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
80 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); | 80 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); |
81 | } | 81 | } |
82 | 82 | ||
83 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 83 | void __kprobes arch_remove_kprobe(struct kprobe *p, struct semaphore *s) |
84 | { | 84 | { |
85 | down(s); | ||
85 | free_insn_slot(p->ainsn.insn); | 86 | free_insn_slot(p->ainsn.insn); |
87 | up(s); | ||
86 | } | 88 | } |
87 | 89 | ||
88 | static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 90 | static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
diff --git a/arch/sparc64/kernel/kprobes.c b/arch/sparc64/kernel/kprobes.c index bbd5aa6818ea..ff5e9d5cad50 100644 --- a/arch/sparc64/kernel/kprobes.c +++ b/arch/sparc64/kernel/kprobes.c | |||
@@ -61,10 +61,6 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
61 | flushi(p->addr); | 61 | flushi(p->addr); |
62 | } | 62 | } |
63 | 63 | ||
64 | void __kprobes arch_remove_kprobe(struct kprobe *p) | ||
65 | { | ||
66 | } | ||
67 | |||
68 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | 64 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) |
69 | { | 65 | { |
70 | kcb->prev_kprobe.kp = kprobe_running(); | 66 | kcb->prev_kprobe.kp = kprobe_running(); |
diff --git a/arch/x86_64/kernel/kprobes.c b/arch/x86_64/kernel/kprobes.c index 128e18190f99..61a6a9369cbd 100644 --- a/arch/x86_64/kernel/kprobes.c +++ b/arch/x86_64/kernel/kprobes.c | |||
@@ -220,9 +220,11 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
220 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); | 220 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); |
221 | } | 221 | } |
222 | 222 | ||
223 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 223 | void __kprobes arch_remove_kprobe(struct kprobe *p, struct semaphore *s) |
224 | { | 224 | { |
225 | down(s); | ||
225 | free_insn_slot(p->ainsn.insn); | 226 | free_insn_slot(p->ainsn.insn); |
227 | up(s); | ||
226 | } | 228 | } |
227 | 229 | ||
228 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | 230 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) |