Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
[sfrench/cifs-2.6.git] / arch / Kconfig
index da75bab22eeef4b9da62e2d6bc63c5fdbb8fb9eb..48b5e103bdb00d4fd928ca90ed94aa5ea420d847 100644 (file)
@@ -72,11 +72,11 @@ config KPROBES
          If in doubt, say "N".
 
 config JUMP_LABEL
-       bool "Optimize very unlikely/likely branches"
-       depends on HAVE_ARCH_JUMP_LABEL
-       depends on CC_HAS_ASM_GOTO
-       help
-         This option enables a transparent branch optimization that
+       bool "Optimize very unlikely/likely branches"
+       depends on HAVE_ARCH_JUMP_LABEL
+       depends on CC_HAS_ASM_GOTO
+       help
+        This option enables a transparent branch optimization that
         makes certain almost-always-true or almost-always-false branch
         conditions even cheaper to execute within the kernel.
 
@@ -84,7 +84,7 @@ config JUMP_LABEL
         scheduler functionality, networking code and KVM have such
         branches and include support for this optimization technique.
 
-         If it is detected that the compiler has support for "asm goto",
+        If it is detected that the compiler has support for "asm goto",
         the kernel will compile such branches with just a nop
         instruction. When the condition flag is toggled to true, the
         nop will be converted to a jump instruction to execute the
@@ -151,8 +151,8 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS
          information on the topic of unaligned memory accesses.
 
 config ARCH_USE_BUILTIN_BSWAP
-       bool
-       help
+       bool
+       help
         Modern versions of GCC (since 4.4) have builtin functions
         for handling byte-swapping. Using these, instead of the old
         inline assembler that the architecture code provides in the
@@ -221,10 +221,10 @@ config HAVE_DMA_CONTIGUOUS
        bool
 
 config GENERIC_SMP_IDLE_THREAD
-       bool
+       bool
 
 config GENERIC_IDLE_POLL_SETUP
-       bool
+       bool
 
 config ARCH_HAS_FORTIFY_SOURCE
        bool
@@ -257,7 +257,7 @@ config ARCH_HAS_UNCACHED_SEGMENT
 
 # Select if arch init_task must go in the __init_task_data section
 config ARCH_TASK_STRUCT_ON_STACK
-       bool
+       bool
 
 # Select if arch has its private alloc_task_struct() function
 config ARCH_TASK_STRUCT_ALLOCATOR
@@ -836,16 +836,17 @@ config HAVE_ARCH_VMAP_STACK
 config VMAP_STACK
        default y
        bool "Use a virtually-mapped stack"
-       depends on HAVE_ARCH_VMAP_STACK && !KASAN
+       depends on HAVE_ARCH_VMAP_STACK
+       depends on !KASAN || KASAN_VMALLOC
        ---help---
          Enable this if you want the use virtually-mapped kernel stacks
          with guard pages.  This causes kernel stack overflows to be
          caught immediately rather than causing difficult-to-diagnose
          corruption.
 
-         This is presently incompatible with KASAN because KASAN expects
-         the stack to map directly to the KASAN shadow map using a formula
-         that is incorrect if the stack is in vmalloc space.
+         To use this with KASAN, the architecture must support backing
+         virtual mappings with real shadow memory, and KASAN_VMALLOC must
+         be enabled.
 
 config ARCH_OPTIONAL_KERNEL_RWX
        def_bool n