• Steven Rostedt's avatar
    ftrace: Synchronize variable setting with breakpoints · a192cd04
    Steven Rostedt authored
    When the function tracer starts modifying the code via breakpoints
    it sets a variable (modifying_ftrace_code) to inform the breakpoint
    handler to call the ftrace int3 code.
    
    But there's no synchronization between setting this code and the
    handler, thus it is possible for the handler to be called on another
    CPU before it sees the variable. This will cause a kernel crash as
    the int3 handler will not know what to do with it.
    
    I originally added smp_mb()'s to force the visibility of the variable
    but H. Peter Anvin suggested that I just make it atomic.
    
    [ Added comments as suggested by Peter Zijlstra ]
    Suggested-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    a192cd04
ftrace.c 14.6 KB