diff options
Diffstat (limited to 'kernel/kprobes.c')
| -rw-r--r-- | kernel/kprobes.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 6dd5359e1f0e..ec4210c6501e 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
| @@ -47,6 +47,7 @@ | |||
| 47 | #include <linux/memory.h> | 47 | #include <linux/memory.h> |
| 48 | #include <linux/ftrace.h> | 48 | #include <linux/ftrace.h> |
| 49 | #include <linux/cpu.h> | 49 | #include <linux/cpu.h> |
| 50 | #include <linux/jump_label.h> | ||
| 50 | 51 | ||
| 51 | #include <asm-generic/sections.h> | 52 | #include <asm-generic/sections.h> |
| 52 | #include <asm/cacheflush.h> | 53 | #include <asm/cacheflush.h> |
| @@ -1146,7 +1147,8 @@ int __kprobes register_kprobe(struct kprobe *p) | |||
| 1146 | preempt_disable(); | 1147 | preempt_disable(); |
| 1147 | if (!kernel_text_address((unsigned long) p->addr) || | 1148 | if (!kernel_text_address((unsigned long) p->addr) || |
| 1148 | in_kprobes_functions((unsigned long) p->addr) || | 1149 | in_kprobes_functions((unsigned long) p->addr) || |
| 1149 | ftrace_text_reserved(p->addr, p->addr)) { | 1150 | ftrace_text_reserved(p->addr, p->addr) || |
| 1151 | jump_label_text_reserved(p->addr, p->addr)) { | ||
| 1150 | preempt_enable(); | 1152 | preempt_enable(); |
| 1151 | return -EINVAL; | 1153 | return -EINVAL; |
| 1152 | } | 1154 | } |
