]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - lib/Kconfig.kasan
mm/cma_debug.c: remove static scoped cma_debugfs_root
[linux.git] / lib / Kconfig.kasan
index d8c474b6691e92c6a2d26519c5f59cb4b4d04afc..9950b660e62d54ebee6b61ffe9b77e42e7e0f177 100644 (file)
@@ -78,16 +78,6 @@ config KASAN_SW_TAGS
 
 endchoice
 
-config KASAN_EXTRA
-       bool "KASAN: extra checks"
-       depends on KASAN_GENERIC && DEBUG_KERNEL && !COMPILE_TEST
-       help
-         This enables further checks in generic KASAN, for now it only
-         includes the address-use-after-scope check that can lead to
-         excessive kernel stack usage, frame size warnings and longer
-         compile time.
-         See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715
-
 choice
        prompt "Instrumentation type"
        depends on KASAN
@@ -113,6 +103,28 @@ config KASAN_INLINE
 
 endchoice
 
+config KASAN_STACK_ENABLE
+       bool "Enable stack instrumentation (unsafe)" if CC_IS_CLANG && !COMPILE_TEST
+       default !(CLANG_VERSION < 90000)
+       depends on KASAN
+       help
+         The LLVM stack address sanitizer has a know problem that
+         causes excessive stack usage in a lot of functions, see
+         https://bugs.llvm.org/show_bug.cgi?id=38809
+         Disabling asan-stack makes it safe to run kernels build
+         with clang-8 with KASAN enabled, though it loses some of
+         the functionality.
+         This feature is always disabled when compile-testing with clang-8
+         or earlier to avoid cluttering the output in stack overflow
+         warnings, but clang-8 users can still enable it for builds without
+         CONFIG_COMPILE_TEST.  On gcc and later clang versions it is
+         assumed to always be safe to use and enabled by default.
+
+config KASAN_STACK
+       int
+       default 1 if KASAN_STACK_ENABLE || CC_IS_GCC
+       default 0
+
 config KASAN_S390_4_LEVEL_PAGING
        bool "KASan: use 4-level paging"
        depends on KASAN && S390