diff options
author | Jason Baron <jbaron@redhat.com> | 2010-09-17 11:09:08 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-09-22 16:30:46 -0400 |
commit | 4c3ef6d79328c0e23ade60cbfc8d496123a6855c (patch) | |
tree | 4a28260548ff4ad507d12716d6cdaa6bc0451a87 /kernel/kprobes.c | |
parent | e0cf0cd49632552f063fb3ae58691946da45fb2e (diff) | |
download | linux-4c3ef6d79328c0e23ade60cbfc8d496123a6855c.tar.gz linux-4c3ef6d79328c0e23ade60cbfc8d496123a6855c.tar.bz2 linux-4c3ef6d79328c0e23ade60cbfc8d496123a6855c.zip |
jump label: Add jump_label_text_reserved() to reserve jump points
Add a jump_label_text_reserved(void *start, void *end), so that other
pieces of code that want to modify kernel text, can first verify that
jump label has not reserved the instruction.
Acked-by: Masami Hiramatsu <mhiramat@redhat.com>
Signed-off-by: Jason Baron <jbaron@redhat.com>
LKML-Reference: <06236663a3a7b1c1f13576bb9eccb6d9c17b7bfe.1284733808.git.jbaron@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/kprobes.c')
-rw-r--r-- | kernel/kprobes.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 18904e42a918..ec4210c6501e 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1147,7 +1147,8 @@ int __kprobes register_kprobe(struct kprobe *p) preempt_disable(); if (!kernel_text_address((unsigned long) p->addr) || in_kprobes_functions((unsigned long) p->addr) || - ftrace_text_reserved(p->addr, p->addr)) { + ftrace_text_reserved(p->addr, p->addr) || + jump_label_text_reserved(p->addr, p->addr)) { preempt_enable(); return -EINVAL; } |