tree c8efdfadbf904ce9eaff942156bc3d0608375d7d
parent a650e02a528ab9d6d6f0b8b57745c32f2a138459
author Steven Rostedt <srostedt@redhat.com> 1335379194 -0400
committer Steven Rostedt <rostedt@goodmis.org> 1337212729 -0400

ftrace: Return record ip addr for ftrace_location()

ftrace_location() is passed an addr, and returns 1 if the addr is
on a ftrace nop (or caller to ftrace_caller), and 0 otherwise.

To let kprobes know if it should move a breakpoint or not, it
must return the actual addr that is the start of the ftrace nop.
This way a kprobe placed on the location of a ftrace nop, can
instead be placed on the instruction after the nop. Even if the
probe addr is on the second or later byte of the nop, it can
simply be moved forward.

Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
