• Steven Rostedt (Red Hat)'s avatar
    ftrace: Fix checking of trampoline ftrace_ops in finding trampoline · 4fc40904
    Steven Rostedt (Red Hat) authored
    When modifying code, ftrace has several checks to make sure things
    are being done correctly. One of them is to make sure any code it
    modifies is exactly what it expects it to be before it modifies it.
    In order to do so with the new trampoline logic, it must be able
    to find out what trampoline a function is hooked to in order to
    see if the code that hooks to it is what's expected.
    
    The logic to find the trampoline from a record (accounting descriptor
    for a function that is hooked) needs to only look at the "old_hash"
    of an ops that is being modified. The old_hash is the list of function
    an ops is hooked to before its update. Since a record would only be
    pointing to an ops that is being modified if it was already hooked
    before.
    
    Currently, it can pick a modified ops based on its new functions it
    will be hooked to, and this picks the wrong trampoline and causes
    the check to fail, disabling ftrace.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    
    ftrace: squash into ordering of ops for modification
    4fc40904
ftrace.c 128 KB