diff options
author | Will Deacon | 2019-08-16 15:57:43 +0200 |
---|---|---|
committer | Catalin Marinas | 2019-08-16 18:40:03 +0200 |
commit | b6143d10d23ebb4a77af311e8b8b7f019d0163e6 (patch) | |
tree | f2e7abeb246bc656dd7f1213b5b0e423fa0c4854 /drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | |
parent | arm64: cpufeature: Don't treat granule sizes as strict (diff) | |
download | kernel-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/net/ethernet/stmicro/stmmac/stmmac_pci.c')
0 files changed, 0 insertions, 0 deletions