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: Marco Elver <elver@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Andrey 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.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9c801f61d0
commit
7a3767f83f
|
@ -18,7 +18,7 @@ config CC_HAS_KASAN_SW_TAGS
|
|||
config CC_HAS_WORKING_NOSANITIZE_ADDRESS
|
||||
def_bool !CC_IS_GCC || GCC_VERSION >= 80300
|
||||
|
||||
config KASAN
|
||||
menuconfig KASAN
|
||||
bool "KASAN: runtime memory debugger"
|
||||
depends on (HAVE_ARCH_KASAN && CC_HAS_KASAN_GENERIC) || \
|
||||
(HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS)
|
||||
|
@ -29,9 +29,10 @@ config KASAN
|
|||
designed to find out-of-bounds accesses and use-after-free bugs.
|
||||
See Documentation/dev-tools/kasan.rst for details.
|
||||
|
||||
if KASAN
|
||||
|
||||
choice
|
||||
prompt "KASAN mode"
|
||||
depends on KASAN
|
||||
default KASAN_GENERIC
|
||||
help
|
||||
KASAN has two modes: generic KASAN (similar to userspace ASan,
|
||||
|
@ -88,7 +89,6 @@ endchoice
|
|||
|
||||
choice
|
||||
prompt "Instrumentation type"
|
||||
depends on KASAN
|
||||
default KASAN_OUTLINE
|
||||
|
||||
config KASAN_OUTLINE
|
||||
|
@ -113,7 +113,6 @@ endchoice
|
|||
|
||||
config KASAN_STACK_ENABLE
|
||||
bool "Enable stack instrumentation (unsafe)" if CC_IS_CLANG && !COMPILE_TEST
|
||||
depends on KASAN
|
||||
help
|
||||
The LLVM stack address sanitizer has a know problem that
|
||||
causes excessive stack usage in a lot of functions, see
|
||||
|
@ -134,7 +133,7 @@ config KASAN_STACK
|
|||
|
||||
config KASAN_S390_4_LEVEL_PAGING
|
||||
bool "KASan: use 4-level paging"
|
||||
depends on KASAN && S390
|
||||
depends on S390
|
||||
help
|
||||
Compiling the kernel with KASan disables automatic 3-level vs
|
||||
4-level paging selection. 3-level paging is used by default (up
|
||||
|
@ -151,7 +150,7 @@ config KASAN_SW_TAGS_IDENTIFY
|
|||
|
||||
config KASAN_VMALLOC
|
||||
bool "Back mappings in vmalloc space with real shadow memory"
|
||||
depends on KASAN && HAVE_ARCH_KASAN_VMALLOC
|
||||
depends on HAVE_ARCH_KASAN_VMALLOC
|
||||
help
|
||||
By default, the shadow region for vmalloc space is the read-only
|
||||
zero page. This means that KASAN cannot detect errors involving
|
||||
|
@ -164,8 +163,10 @@ config KASAN_VMALLOC
|
|||
|
||||
config TEST_KASAN
|
||||
tristate "Module for testing KASAN for bug detection"
|
||||
depends on m && KASAN
|
||||
depends on m
|
||||
help
|
||||
This is a test module doing various nasty things like
|
||||
out of bounds accesses, use after free. It is useful for testing
|
||||
kernel debugging features like KASAN.
|
||||
|
||||
endif # KASAN
|
||||
|
|
Loading…
Reference in New Issue