tree 348ea5654f1eb17ecd8b0e3256615e96fb3c6dc9
parent 7780b6a2990e2fbb697bb900e01ca7361943c7da
author Matt Fleming <matt@console-pimps.org> 1244668073 +0100
committer Matt Fleming <matt@console-pimps.org> 1244743258 +0100

sh: Fix dynamic ftrace's NOP action.

Ftrace on sh handles nop'ing out trace function calls differently than
other architectures. Instead of inserting NOP instructions in place of
the call to the function tracer we branch over the call instructions
and continue executing the main body of the function.

This patch fixes a bug in the implementation of ftrace_modify_code()
where we check that the old value of the code we're about to replace
is an expected one. In the ftrace_make_call() code path
ftrace_modify_code() was comparing the old instruction value with NOP
instructions. The compare was failing because we never actually insert
NOP instructions. It makes sense to just get rid of the NOP
instructions in ftrace_nop and compare the old code with the address
of the function body if we're expecting ftrace to have nop'd out the
function trace call.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
