diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-22 19:30:49 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-22 19:30:49 +0100 |
commit | d26d45253b78ec0a67003eea25bd08fceaa5b78c (patch) | |
tree | ed79c581aca93bec4122943111d411ce316f5596 /kernel | |
parent | Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/j... (diff) | |
parent | ftrace: Be first to run code modification on modules (diff) | |
download | linux-d26d45253b78ec0a67003eea25bd08fceaa5b78c.tar.xz linux-d26d45253b78ec0a67003eea25bd08fceaa5b78c.zip |
Merge tag 'trace-3.8-rc4-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull ftrace fix from Steven Rostedt:
"Kprobes now uses the function tracer if it can. That is, if a probe
is placed on a function mcount/nop location, and the arch supports it,
instead of adding a breakpoint, kprobes will register a function
callback as that is much more efficient.
The function tracer requires to update modules before they run, and
uses the module notifier to do so. But if something else in the
module notifiers registers a kprobe at one of these locations, before
ftrace can get to it, then the system could fail.
The function tracer must be initialized early, otherwise module
notifiers that probe will only work by chance."
* tag 'trace-3.8-rc4-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
ftrace: Be first to run code modification on modules
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/ftrace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 3ffe4c5ad3f3..41473b4ad7a4 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -3998,7 +3998,7 @@ static int ftrace_module_notify(struct notifier_block *self, struct notifier_block ftrace_module_nb = { .notifier_call = ftrace_module_notify, - .priority = 0, + .priority = INT_MAX, /* Run before anything that can use kprobes */ }; extern unsigned long __start_mcount_loc[]; |