• Matt Fleming's avatar
    sh: Fix dynamic ftrace's NOP action. · 9e28c46b
    Matt Fleming authored
    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: default avatarMatt Fleming <matt@console-pimps.org>
    9e28c46b
ftrace.c 3.79 KB