Commit 7a3767f8 authored by Marco Elver's avatar Marco Elver Committed by Linus Torvalds

kasan: improve and simplify Kconfig.kasan

Turn 'KASAN' into a menuconfig, to avoid cluttering its parent menu with
the suboptions if enabled.  Use 'if KASAN ...  endif' instead of having to
'depend on KASAN' for each entry.
Signed-off-by: default avatarMarco Elver <elver@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Reviewed-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Daniel Axtens <dja@axtens.net>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Walter Wu <walter-zh.wu@mediatek.com>
Link: http://lkml.kernel.org/r/20200629104157.3242503-1-elver@google.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9c801f61
...@@ -18,7 +18,7 @@ config CC_HAS_KASAN_SW_TAGS ...@@ -18,7 +18,7 @@ config CC_HAS_KASAN_SW_TAGS
config CC_HAS_WORKING_NOSANITIZE_ADDRESS config CC_HAS_WORKING_NOSANITIZE_ADDRESS
def_bool !CC_IS_GCC || GCC_VERSION >= 80300 def_bool !CC_IS_GCC || GCC_VERSION >= 80300
config KASAN menuconfig KASAN
bool "KASAN: runtime memory debugger" bool "KASAN: runtime memory debugger"
depends on (HAVE_ARCH_KASAN && CC_HAS_KASAN_GENERIC) || \ depends on (HAVE_ARCH_KASAN && CC_HAS_KASAN_GENERIC) || \
(HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS) (HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS)
...@@ -29,9 +29,10 @@ config KASAN ...@@ -29,9 +29,10 @@ config KASAN
designed to find out-of-bounds accesses and use-after-free bugs. designed to find out-of-bounds accesses and use-after-free bugs.
See Documentation/dev-tools/kasan.rst for details. See Documentation/dev-tools/kasan.rst for details.
if KASAN
choice choice
prompt "KASAN mode" prompt "KASAN mode"
depends on KASAN
default KASAN_GENERIC default KASAN_GENERIC
help help
KASAN has two modes: generic KASAN (similar to userspace ASan, KASAN has two modes: generic KASAN (similar to userspace ASan,
...@@ -88,7 +89,6 @@ endchoice ...@@ -88,7 +89,6 @@ endchoice
choice choice
prompt "Instrumentation type" prompt "Instrumentation type"
depends on KASAN
default KASAN_OUTLINE default KASAN_OUTLINE
config KASAN_OUTLINE config KASAN_OUTLINE
...@@ -113,7 +113,6 @@ endchoice ...@@ -113,7 +113,6 @@ endchoice
config KASAN_STACK_ENABLE config KASAN_STACK_ENABLE
bool "Enable stack instrumentation (unsafe)" if CC_IS_CLANG && !COMPILE_TEST bool "Enable stack instrumentation (unsafe)" if CC_IS_CLANG && !COMPILE_TEST
depends on KASAN
help help
The LLVM stack address sanitizer has a know problem that The LLVM stack address sanitizer has a know problem that
causes excessive stack usage in a lot of functions, see causes excessive stack usage in a lot of functions, see
...@@ -134,7 +133,7 @@ config KASAN_STACK ...@@ -134,7 +133,7 @@ config KASAN_STACK
config KASAN_S390_4_LEVEL_PAGING config KASAN_S390_4_LEVEL_PAGING
bool "KASan: use 4-level paging" bool "KASan: use 4-level paging"
depends on KASAN && S390 depends on S390
help help
Compiling the kernel with KASan disables automatic 3-level vs Compiling the kernel with KASan disables automatic 3-level vs
4-level paging selection. 3-level paging is used by default (up 4-level paging selection. 3-level paging is used by default (up
...@@ -151,7 +150,7 @@ config KASAN_SW_TAGS_IDENTIFY ...@@ -151,7 +150,7 @@ config KASAN_SW_TAGS_IDENTIFY
config KASAN_VMALLOC config KASAN_VMALLOC
bool "Back mappings in vmalloc space with real shadow memory" bool "Back mappings in vmalloc space with real shadow memory"
depends on KASAN && HAVE_ARCH_KASAN_VMALLOC depends on HAVE_ARCH_KASAN_VMALLOC
help help
By default, the shadow region for vmalloc space is the read-only By default, the shadow region for vmalloc space is the read-only
zero page. This means that KASAN cannot detect errors involving zero page. This means that KASAN cannot detect errors involving
...@@ -164,8 +163,10 @@ config KASAN_VMALLOC ...@@ -164,8 +163,10 @@ config KASAN_VMALLOC
config TEST_KASAN config TEST_KASAN
tristate "Module for testing KASAN for bug detection" tristate "Module for testing KASAN for bug detection"
depends on m && KASAN depends on m
help help
This is a test module doing various nasty things like This is a test module doing various nasty things like
out of bounds accesses, use after free. It is useful for testing out of bounds accesses, use after free. It is useful for testing
kernel debugging features like KASAN. kernel debugging features like KASAN.
endif # KASAN
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment