diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-03-06 18:15:35 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2018-03-09 14:23:09 +0100 |
commit | ca79acca273630935f2cfdfdf3fc7425ff51ce1c (patch) | |
tree | eb7562df51b97cc6e33b494c9d744744f6dd4a89 /arch/arm64/kernel/module.c | |
parent | arm64/errata: add REVIDR handling to framework (diff) | |
download | linux-ca79acca273630935f2cfdfdf3fc7425ff51ce1c.tar.xz linux-ca79acca273630935f2cfdfdf3fc7425ff51ce1c.zip |
arm64/kernel: enable A53 erratum #8434319 handling at runtime
Omit patching of ADRP instruction at module load time if the current
CPUs are not susceptible to the erratum.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[will: Drop duplicate initialisation of .def_scope field]
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/module.c')
-rw-r--r-- | arch/arm64/kernel/module.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c index f9d824947c34..719fde8dcc19 100644 --- a/arch/arm64/kernel/module.c +++ b/arch/arm64/kernel/module.c @@ -203,6 +203,7 @@ static int reloc_insn_adrp(struct module *mod, __le32 *place, u64 val) u32 insn; if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_843419) || + !cpus_have_const_cap(ARM64_WORKAROUND_843419) || ((u64)place & 0xfff) < 0xff8) return reloc_insn_imm(RELOC_OP_PAGE, place, val, 12, 21, AARCH64_INSN_IMM_ADR); |