Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / Kconfig
index 7c1dbeb73e8d3505c1213461afd6c8e2f0559828..b8d96f1554af11aef71af0627278925f244067a9 100644 (file)
@@ -1,6 +1,5 @@
 config ARM64
        def_bool y
 config ARM64
        def_bool y
-       select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_GCOV_PROFILE_ALL
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_GCOV_PROFILE_ALL
@@ -369,6 +368,27 @@ config ARM64_ERRATUM_832075
 
          If unsure, say Y.
 
 
          If unsure, say Y.
 
+config ARM64_ERRATUM_845719
+       bool "Cortex-A53: 845719: a load might read incorrect data"
+       depends on COMPAT
+       default y
+       help
+         This option adds an alternative code sequence to work around ARM
+         erratum 845719 on Cortex-A53 parts up to r0p4.
+
+         When running a compat (AArch32) userspace on an affected Cortex-A53
+         part, a load at EL0 from a virtual address that matches the bottom 32
+         bits of the virtual address used by a recent load at (AArch64) EL1
+         might return incorrect data.
+
+         The workaround is to write the contextidr_el1 register on exception
+         return to a 32-bit task.
+         Please note that this does not necessarily enable the workaround,
+         as it depends on the alternative framework, which will only patch
+         the kernel if an affected CPU is detected.
+
+         If unsure, say Y.
+
 endmenu
 
 
 endmenu
 
 
@@ -456,8 +476,8 @@ config SCHED_SMT
          places. If unsure say N here.
 
 config NR_CPUS
          places. If unsure say N here.
 
 config NR_CPUS
-       int "Maximum number of CPUs (2-64)"
-       range 2 64
+       int "Maximum number of CPUs (2-4096)"
+       range 2 4096
        depends on SMP
        # These have to remain sorted largest to smallest
        default "64"
        depends on SMP
        # These have to remain sorted largest to smallest
        default "64"
@@ -471,6 +491,10 @@ config HOTPLUG_CPU
 
 source kernel/Kconfig.preempt
 
 
 source kernel/Kconfig.preempt
 
+config UP_LATE_INIT
+       def_bool y
+       depends on !SMP
+
 config HZ
        int
        default 100
 config HZ
        int
        default 100
@@ -671,7 +695,7 @@ source "fs/Kconfig.binfmt"
 
 config COMPAT
        bool "Kernel support for 32-bit EL0"
 
 config COMPAT
        bool "Kernel support for 32-bit EL0"
-       depends on !ARM64_64K_PAGES
+       depends on !ARM64_64K_PAGES || EXPERT
        select COMPAT_BINFMT_ELF
        select HAVE_UID16
        select OLD_SIGSUSPEND3
        select COMPAT_BINFMT_ELF
        select HAVE_UID16
        select OLD_SIGSUSPEND3
@@ -682,6 +706,10 @@ config COMPAT
          the user helper functions, VFP support and the ptrace interface are
          handled appropriately by the kernel.
 
          the user helper functions, VFP support and the ptrace interface are
          handled appropriately by the kernel.
 
+         If you also enabled CONFIG_ARM64_64K_PAGES, please be aware that you
+         will only be able to execute AArch32 binaries that were compiled with
+         64k aligned segments.
+
          If you want to execute 32-bit userspace applications, say Y.
 
 config SYSVIPC_COMPAT
          If you want to execute 32-bit userspace applications, say Y.
 
 config SYSVIPC_COMPAT