arm64: ftrace: use function_nocfi for _mcount as well
authorSumit Garg <sumit.garg@linaro.org>
Mon, 11 Oct 2021 12:50:59 +0000 (18:20 +0530)
committerWill Deacon <will@kernel.org>
Tue, 12 Oct 2021 08:24:49 +0000 (09:24 +0100)
commitde56379f21c70196ff18c48790e8e43865893869
tree9d9eb433f2d9932e955442aa2701adcf99fa9e7d
parent1dfde0892b325ed1872975053c6745f5148050a2
arm64: ftrace: use function_nocfi for _mcount as well

Commit 800618f955a9 ("arm64: ftrace: use function_nocfi for ftrace_call")
only fixed address of ftrace_call but address of _mcount needs to be
fixed as well. Use function_nocfi() to get the actual address of _mcount
function as with CONFIG_CFI_CLANG, the compiler replaces function pointers
with jump table addresses which breaks dynamic ftrace as the address of
_mcount is replaced with the address of _mcount.cfi_jt.

With mainline, this won't be a problem since by default
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y with Clang >= 10 as it supports
-fpatchable-function-entry and CFI requires Clang 12 but for consistency
we should add function_nocfi() for _mcount as well.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20211011125059.3378646-1-sumit.garg@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/ftrace.h