]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: kernel: disable CNP on Carmel
authorRich Wiley <rwiley@nvidia.com>
Wed, 24 Mar 2021 00:28:09 +0000 (17:28 -0700)
committerWill Deacon <will@kernel.org>
Thu, 25 Mar 2021 10:00:23 +0000 (10:00 +0000)
commita252f3b448d681db4d28b202d8ce0f20eee842c5
treecb12010828a5ed3a781337e3a5048140209353e8
parent8fc6bd854a8fb5ac946b798b0a63696955b44740
arm64: kernel: disable CNP on Carmel

On NVIDIA Carmel cores, CNP behaves differently than it does on standard
ARM cores. On Carmel, if two cores have CNP enabled and share an L2 TLB
entry created by core0 for a specific ASID, a non-shareable TLBI from
core1 may still see the shared entry. On standard ARM cores, that TLBI
will invalidate the shared entry as well.

This causes issues with patchsets that attempt to do local TLBIs based
on cpumasks instead of broadcast TLBIs. Avoid these issues by disabling
CNP support for NVIDIA Carmel cores.

Signed-off-by: Rich Wiley <rwiley@nvidia.com>
Link: https://lore.kernel.org/r/20210324002809.30271-1-rwiley@nvidia.com
[will: Fix pre-existing whitespace issue]
Signed-off-by: Will Deacon <will@kernel.org>
Documentation/arm64/silicon-errata.rst
arch/arm64/Kconfig
arch/arm64/include/asm/cpucaps.h
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/cpufeature.c