diff options
author | Masami Hiramatsu <mhiramat@redhat.com> | 2007-10-16 04:27:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:10 -0400 |
commit | f438d914b220051d4cbc65cbc5d98e163c85c93b (patch) | |
tree | 75e7fda155a8494595f6ae0539bbb64ef98230f6 /arch/ia64/kernel/kprobes.c | |
parent | 49dce689ad4ef0fd1f970ef762168e4bd46f69a3 (diff) |
kprobes: support kretprobe blacklist
Introduce architecture dependent kretprobe blacklists to prohibit users
from inserting return probes on the function in which kprobes can be
inserted but kretprobes can not.
This patch also removes "__kprobes" mark from "__switch_to" on x86_64 and
registers "__switch_to" to the blacklist on x86-64, because that mark is to
prohibit user from inserting only kretprobe.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com>
Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/ia64/kernel/kprobes.c')
-rw-r--r-- | arch/ia64/kernel/kprobes.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index 5dc98b5abcfb..5fd65d8302c8 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -40,6 +40,8 @@ extern void jprobe_inst_return(void); | |||
40 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; | 40 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; |
41 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 41 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
42 | 42 | ||
43 | struct kretprobe_blackpoint kretprobe_blacklist[] = {{NULL, NULL}}; | ||
44 | |||
43 | enum instruction_type {A, I, M, F, B, L, X, u}; | 45 | enum instruction_type {A, I, M, F, B, L, X, u}; |
44 | static enum instruction_type bundle_encoding[32][3] = { | 46 | static enum instruction_type bundle_encoding[32][3] = { |
45 | { M, I, I }, /* 00 */ | 47 | { M, I, I }, /* 00 */ |