diff options
author | Will Deacon <will@kernel.org> | 2019-08-16 14:57:43 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2019-08-16 17:40:03 +0100 |
commit | b6143d10d23ebb4a77af311e8b8b7f019d0163e6 (patch) | |
tree | f2e7abeb246bc656dd7f1213b5b0e423fa0c4854 /kernel/kallsyms.c | |
parent | 5717fe5ab38f9ccb32718bcb03bea68409c9cce4 (diff) | |
download | lwn-b6143d10d23ebb4a77af311e8b8b7f019d0163e6.tar.gz lwn-b6143d10d23ebb4a77af311e8b8b7f019d0163e6.zip |
arm64: ftrace: Ensure module ftrace trampoline is coherent with I-side
The initial support for dynamic ftrace trampolines in modules made use
of an indirect branch which loaded its target from the beginning of
a special section (e71a4e1bebaf7 ("arm64: ftrace: add support for far
branches to dynamic ftrace")). Since no instructions were being patched,
no cache maintenance was needed. However, later in be0f272bfc83 ("arm64:
ftrace: emit ftrace-mod.o contents through code") this code was reworked
to output the trampoline instructions directly into the PLT entry but,
unfortunately, the necessary cache maintenance was overlooked.
Add a call to __flush_icache_range() after writing the new trampoline
instructions but before patching in the branch to the trampoline.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: James Morse <james.morse@arm.com>
Cc: <stable@vger.kernel.org>
Fixes: be0f272bfc83 ("arm64: ftrace: emit ftrace-mod.o contents through code")
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'kernel/kallsyms.c')
0 files changed, 0 insertions, 0 deletions