kasan: allow VMAP_STACK for HW_TAGS mode
authorAndrey Konovalov <andreyknvl@google.com>
Tue, 22 Dec 2020 20:02:45 +0000 (12:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Dec 2020 20:55:08 +0000 (12:55 -0800)
Even though hardware tag-based mode currently doesn't support checking
vmalloc allocations, it doesn't use shadow memory and works with
VMAP_STACK as is. Change VMAP_STACK definition accordingly.

Link: https://lkml.kernel.org/r/ecdb2a1658ebd88eb276dee2493518ac0e82de41.1606162397.git.andreyknvl@google.com
Link: https://linux-review.googlesource.com/id/I3552cbc12321dec82cd7372676e9372a2eb452ac
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Marco Elver <elver@google.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Branislav Rankov <Branislav.Rankov@arm.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/Kconfig

index a08999d..78c6f05 100644 (file)
@@ -976,16 +976,16 @@ config VMAP_STACK
        default y
        bool "Use a virtually-mapped stack"
        depends on HAVE_ARCH_VMAP_STACK
-       depends on !KASAN || KASAN_VMALLOC
+       depends on !KASAN || KASAN_HW_TAGS || 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.
 
-         To use this with KASAN, the architecture must support backing
-         virtual mappings with real shadow memory, and KASAN_VMALLOC must
-         be enabled.
+         To use this with software KASAN modes, 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