]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - arch/arm64/Kconfig
Merge branch 'for-next/bti-user' into for-next/bti
[thirdparty/linux.git] / arch / arm64 / Kconfig
index 40fb05d96c6072c9357cf69965ca006c0a5fdb27..43be825d0730a6c8657402342fcec9da84a99f3c 100644 (file)
@@ -9,6 +9,7 @@ config ARM64
        select ACPI_MCFG if (ACPI && PCI)
        select ACPI_SPCR_TABLE if ACPI
        select ACPI_PPTT if ACPI
+       select ARCH_BINFMT_ELF_STATE
        select ARCH_HAS_DEBUG_VIRTUAL
        select ARCH_HAS_DEVMEM_IS_ALLOWED
        select ARCH_HAS_DMA_PREP_COHERENT
@@ -32,6 +33,7 @@ config ARM64
        select ARCH_HAS_SYSCALL_WRAPPER
        select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_HAVE_ELF_PROT
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select ARCH_INLINE_READ_LOCK if !PREEMPTION
        select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
@@ -61,6 +63,7 @@ config ARM64
        select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION
        select ARCH_KEEP_MEMBLOCK
        select ARCH_USE_CMPXCHG_LOCKREF
+       select ARCH_USE_GNU_PROPERTY
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_SUPPORTS_MEMORY_FAILURE
@@ -1584,6 +1587,28 @@ endmenu
 
 menu "ARMv8.5 architectural features"
 
+config ARM64_BTI
+       bool "Branch Target Identification support"
+       default y
+       help
+         Branch Target Identification (part of the ARMv8.5 Extensions)
+         provides a mechanism to limit the set of locations to which computed
+         branch instructions such as BR or BLR can jump.
+
+         To make use of BTI on CPUs that support it, say Y.
+
+         BTI is intended to provide complementary protection to other control
+         flow integrity protection mechanisms, such as the Pointer
+         authentication mechanism provided as part of the ARMv8.3 Extensions.
+         For this reason, it does not make sense to enable this option without
+         also enabling support for pointer authentication.  Thus, when
+         enabling this option you should also select ARM64_PTR_AUTH=y.
+
+         Userspace binaries must also be specifically compiled to make use of
+         this mechanism.  If you say N here or the hardware does not support
+         BTI, such binaries can still run, but you get no additional
+         enforcement of branch destinations.
+
 config ARM64_E0PD
        bool "Enable support for E0PD"
        default y