arm64: Force KPTI to be disabled on Cavium ThunderX
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 29 Jan 2018 11:59:56 +0000 (11:59 +0000)
committerHaibo Chen <haibo.chen@nxp.com>
Thu, 12 Apr 2018 10:46:14 +0000 (18:46 +0800)
commit9d12680c283e7357c8d97fb0024589e6db3117cb
tree23c88422d70d0cd01e9aef1b42357484984d8964
parent6a77a2ef5f126dc863190c6e3554cc78cff5b1f7
arm64: Force KPTI to be disabled on Cavium ThunderX

commit 6dc52b15c4a4 upstream.

Cavium ThunderX's erratum 27456 results in a corruption of icache
entries that are loaded from memory that is mapped as non-global
(i.e. ASID-tagged).

As KPTI is based on memory being mapped non-global, let's prevent
it from kicking in if this erratum is detected.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
[will: Update comment]
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Alex Shi <alex.shi@linaro.org>
Conflicts:
using old function read_system_reg/cpus_have_cap to replace
read_sanitised_ftr_reg/cpus_have_const_cap in
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/cpufeature.c