• AKASHI Takahiro's avatar
    arm64: ftrace: modify a stack frame in a safe way · 79fdee9b
    AKASHI Takahiro authored
    Function graph tracer modifies a return address (LR) in a stack frame by
    calling ftrace_prepare_return() in a traced function's function prologue.
    The current code does this modification before preserving an original
    address at ftrace_push_return_trace() and there is always a small window
    of inconsistency when an interrupt occurs.
    
    This doesn't matter, as far as an interrupt stack is introduced, because
    stack tracer won't be invoked in an interrupt context. But it would be
    better to proactively minimize such a window by moving the LR modification
    after ftrace_push_return_trace().
    Signed-off-by: default avatarAKASHI Takahiro <takahiro.akashi@linaro.org>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    79fdee9b
ftrace.c 4.35 KB