summaryrefslogtreecommitdiff
path: root/arch/arm64/Kconfig
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2020-06-30 14:02:22 +0100
committerWill Deacon <will@kernel.org>2020-11-09 21:49:34 +0000
commit364a5a8ae8dc2dd457e2fefb4da3f3fd2c0ba8b1 (patch)
tree4f905f7e5ebe04d52da859df00aa816827bc1558 /arch/arm64/Kconfig
parent7cda23da52ad793a578d290e7fcc9cdc1698bba8 (diff)
downloadlwn-364a5a8ae8dc2dd457e2fefb4da3f3fd2c0ba8b1.tar.gz
lwn-364a5a8ae8dc2dd457e2fefb4da3f3fd2c0ba8b1.zip
arm64: cpufeatures: Add capability for LDAPR instruction
Armv8.3 introduced the LDAPR instruction, which provides weaker memory ordering semantics than LDARi (RCpc vs RCsc). Generally, we provide an RCsc implementation when implementing the Linux memory model, but LDAPR can be used as a useful alternative to dependency ordering, particularly when the compiler is capable of breaking the dependencies. Since LDAPR is not available on all CPUs, add a cpufeature to detect it at runtime and allow the instruction to be used with alternative code patching. Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/Kconfig')
-rw-r--r--arch/arm64/Kconfig3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 1515f6f153a0..0f8b2e35ba99 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1388,6 +1388,9 @@ config ARM64_PAN
The feature is detected at runtime, and will remain as a 'nop'
instruction if the cpu does not implement the feature.
+config AS_HAS_LDAPR
+ def_bool $(as-instr,.arch_extension rcpc)
+
config ARM64_LSE_ATOMICS
bool
default ARM64_USE_LSE_ATOMICS