kmsan: handle memory sent to/from USB
[linux-block.git] / lib / Kconfig.kmsan
CommitLineData
f80be457
AP
1# SPDX-License-Identifier: GPL-2.0-only
2config HAVE_ARCH_KMSAN
3 bool
4
5config HAVE_KMSAN_COMPILER
6 # Clang versions <14.0.0 also support -fsanitize=kernel-memory, but not
7 # all the features necessary to build the kernel with KMSAN.
8 depends on CC_IS_CLANG && CLANG_VERSION >= 140000
9 def_bool $(cc-option,-fsanitize=kernel-memory -mllvm -msan-disable-checks=1)
10
11config KMSAN
12 bool "KMSAN: detector of uninitialized values use"
13 depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER
14 depends on SLUB && DEBUG_KERNEL && !KASAN && !KCSAN
15 select STACKDEPOT
16 select STACKDEPOT_ALWAYS_INIT
17 help
18 KernelMemorySanitizer (KMSAN) is a dynamic detector of uses of
19 uninitialized values in the kernel. It is based on compiler
20 instrumentation provided by Clang and thus requires Clang to build.
21
22 An important note is that KMSAN is not intended for production use,
23 because it drastically increases kernel memory footprint and slows
24 the whole system down.
25
26 See <file:Documentation/dev-tools/kmsan.rst> for more details.
27
28if KMSAN
29
30config HAVE_KMSAN_PARAM_RETVAL
31 # -fsanitize-memory-param-retval is supported only by Clang >= 14.
32 depends on HAVE_KMSAN_COMPILER
33 def_bool $(cc-option,-fsanitize=kernel-memory -fsanitize-memory-param-retval)
34
35config KMSAN_CHECK_PARAM_RETVAL
36 bool "Check for uninitialized values passed to and returned from functions"
37 default y
38 depends on HAVE_KMSAN_PARAM_RETVAL
39 help
40 If the compiler supports -fsanitize-memory-param-retval, KMSAN will
41 eagerly check every function parameter passed by value and every
42 function return value.
43
44 Disabling KMSAN_CHECK_PARAM_RETVAL will result in tracking shadow for
45 function parameters and return values across function borders. This
46 is a more relaxed mode, but it generates more instrumentation code and
47 may potentially report errors in corner cases when non-instrumented
48 functions call instrumented ones.
49
50endif