UPSTREAM: arm64: ftrace: modify a stack frame in a safe way
authorAKASHI Takahiro <takahiro.akashi@linaro.org>
Tue, 15 Dec 2015 08:33:39 +0000 (17:33 +0900)
committerJeff Vander Stoep <jeffv@google.com>
Sun, 18 Sep 2016 21:11:03 +0000 (14:11 -0700)
commitcc6027395e152f2a7aee43623bac1d3bdd8f5da0
treea5e9641860259f7e48a98ffb90f8230faf01ff59
parent0c6cdfec1241b011aeecb1cc0b4d69f122a8d075
UPSTREAM: arm64: ftrace: modify a stack frame in a safe way

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: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Bug: 30369029
Patchset: rework-pagetable

(cherry picked from commit 79fdee9b6355c9720f14717e1ad66af51bb331b5)
Signed-off-by: Jeff Vander Stoep <jeffv@google.com>
Change-Id: Ief0a136aa01348b4d0d3f447544f21fd77835c67
arch/arm64/kernel/ftrace.c