Re: [PATCH 1/2] kasan: Improve and simplify Kconfig.kasan

From: Andrey Konovalov
Date: Mon Jun 29 2020 - 15:33:02 EST


On Mon, Jun 29, 2020 at 12:42 PM Marco Elver <elver@xxxxxxxxxx> wrote:
>
> 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@xxxxxxxxxx>
> ---
> lib/Kconfig.kasan | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
> index 34b84bcbd3d9..89053defc0d9 100644
> --- a/lib/Kconfig.kasan
> +++ b/lib/Kconfig.kasan
> @@ -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
> --
> 2.27.0.212.ge8ba1cc988-goog
>

Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>