mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
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
|
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
|
|||||||
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
|
|||||||
|
|
||||||
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
|
|||||||
|
|
||||||
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
|
|||||||
|
|
||||||
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
|
|||||||
|
|
||||||
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
|
|||||||
|
|
||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user