]> 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)
commit171695a3214ffac659a22079116891c829eb8859
treecb12010828a5ed3a781337e3a5048140209353e8
parent891b4fb48c1ad02ce397221678c1cdc765c1849a
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