summaryrefslogtreecommitdiffstats
path: root/drivers/staging/unisys/visornic/visornic_main.c
diff options
context:
space:
mode:
authorWill Deacon2019-08-16 15:57:43 +0200
committerCatalin Marinas2019-08-16 18:40:03 +0200
commitb6143d10d23ebb4a77af311e8b8b7f019d0163e6 (patch)
treef2e7abeb246bc656dd7f1213b5b0e423fa0c4854 /drivers/staging/unisys/visornic/visornic_main.c
parentarm64: cpufeature: Don't treat granule sizes as strict (diff)
downloadkernel-qcow2-linux-b6143d10d23ebb4a77af311e8b8b7f019d0163e6.tar.gz
kernel-qcow2-linux-b6143d10d23ebb4a77af311e8b8b7f019d0163e6.tar.xz
kernel-qcow2-linux-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 'drivers/staging/unisys/visornic/visornic_main.c')
0 files changed, 0 insertions, 0 deletions