projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PM: Eliminate CONFIG_PM_RUNTIME
[firefly-linux-kernel-4.4.55.git]
/
kernel
/
kprobes.c
diff --git
a/kernel/kprobes.c
b/kernel/kprobes.c
index 831978cebf1da5e6ec858fca2ab654ad17c9c648..06f58309fed2d082b7a859f3effa5b2562e4d447 100644
(file)
--- a/
kernel/kprobes.c
+++ b/
kernel/kprobes.c
@@
-1410,16
+1410,10
@@
static inline int check_kprobe_rereg(struct kprobe *p)
return ret;
}
return ret;
}
-static int check_kprobe_address_safe(struct kprobe *p,
- struct module **probed_mod)
+int __weak arch_check_ftrace_location(struct kprobe *p)
{
{
- int ret = 0;
unsigned long ftrace_addr;
unsigned long ftrace_addr;
- /*
- * If the address is located on a ftrace nop, set the
- * breakpoint to the following instruction.
- */
ftrace_addr = ftrace_location((unsigned long)p->addr);
if (ftrace_addr) {
#ifdef CONFIG_KPROBES_ON_FTRACE
ftrace_addr = ftrace_location((unsigned long)p->addr);
if (ftrace_addr) {
#ifdef CONFIG_KPROBES_ON_FTRACE
@@
-1431,7
+1425,17
@@
static int check_kprobe_address_safe(struct kprobe *p,
return -EINVAL;
#endif
}
return -EINVAL;
#endif
}
+ return 0;
+}
+static int check_kprobe_address_safe(struct kprobe *p,
+ struct module **probed_mod)
+{
+ int ret;
+
+ ret = arch_check_ftrace_location(p);
+ if (ret)
+ return ret;
jump_label_lock();
preempt_disable();
jump_label_lock();
preempt_disable();