Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[muen/linux.git] / arch / arm64 / Kconfig
index 48ad7ca..eb2cf49 100644 (file)
@@ -132,6 +132,7 @@ config ARM64
        select IRQ_DOMAIN
        select IRQ_FORCED_THREADING
        select MODULES_USE_ELF_RELA
+       select MULTI_IRQ_HANDLER
        select NO_BOOTMEM
        select OF
        select OF_EARLY_FLATTREE
@@ -275,6 +276,9 @@ config ARCH_SUPPORTS_UPROBES
 config ARCH_PROC_KCORE_TEXT
        def_bool y
 
+config MULTI_IRQ_HANDLER
+       def_bool y
+
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
@@ -455,12 +459,26 @@ config ARM64_ERRATUM_845719
 config ARM64_ERRATUM_843419
        bool "Cortex-A53: 843419: A load or store might access an incorrect address"
        default y
-       select ARM64_MODULE_CMODEL_LARGE if MODULES
+       select ARM64_MODULE_PLTS if MODULES
        help
          This option links the kernel with '--fix-cortex-a53-843419' and
-         builds modules using the large memory model in order to avoid the use
-         of the ADRP instruction, which can cause a subsequent memory access
-         to use an incorrect address on Cortex-A53 parts up to r0p4.
+         enables PLT support to replace certain ADRP instructions, which can
+         cause subsequent memory accesses to use an incorrect address on
+         Cortex-A53 parts up to r0p4.
+
+         If unsure, say Y.
+
+config ARM64_ERRATUM_1024718
+       bool "Cortex-A55: 1024718: Update of DBM/AP bits without break before make might result in incorrect update"
+       default y
+       help
+         This option adds work around for Arm Cortex-A55 Erratum 1024718.
+
+         Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect
+         update of the hardware dirty bit when the DBM/AP bits are updated
+         without a break-before-make. The work around is to disable the usage
+         of hardware DBM locally on the affected cores. CPUs not affected by
+         erratum will continue to use the feature.
 
          If unsure, say Y.
 
@@ -1120,12 +1138,25 @@ config ARM64_SVE
 
          To enable use of this extension on CPUs that implement it, say Y.
 
-config ARM64_MODULE_CMODEL_LARGE
-       bool
+         Note that for architectural reasons, firmware _must_ implement SVE
+         support when running on SVE capable hardware.  The required support
+         is present in:
+
+           * version 1.5 and later of the ARM Trusted Firmware
+           * the AArch64 boot wrapper since commit 5e1261e08abf
+             ("bootwrapper: SVE: Enable SVE for EL2 and below").
+
+         For other firmware implementations, consult the firmware documentation
+         or vendor.
+
+         If you need the kernel to boot on SVE-capable hardware with broken
+         firmware, you may need to say N here until you get your firmware
+         fixed.  Otherwise, you may experience firmware panics or lockups when
+         booting the kernel.  If unsure and you are not observing these
+         symptoms, you should assume that it is safe to say Y.
 
 config ARM64_MODULE_PLTS
        bool
-       select ARM64_MODULE_CMODEL_LARGE
        select HAVE_MOD_ARCH_SPECIFIC
 
 config RELOCATABLE
@@ -1159,12 +1190,12 @@ config RANDOMIZE_BASE
          If unsure, say N.
 
 config RANDOMIZE_MODULE_REGION_FULL
-       bool "Randomize the module region independently from the core kernel"
+       bool "Randomize the module region over a 4 GB range"
        depends on RANDOMIZE_BASE
        default y
        help
-         Randomizes the location of the module region without considering the
-         location of the core kernel. This way, it is impossible for modules
+         Randomizes the location of the module region inside a 4 GB window
+         covering the core kernel. This way, it is less likely for modules
          to leak information about the location of core kernel data structures
          but it does imply that function calls between modules and the core
          kernel will need to be resolved via veneers in the module PLT.