54 lines · 1.9 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0-onlyconfig HAVE_ARCH_KMSAN	bool config HAVE_KMSAN_COMPILER	def_bool $(cc-option,-fsanitize=kernel-memory) config KMSAN	bool "KMSAN: detector of uninitialized values use"	depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER	depends on DEBUG_KERNEL && !KASAN && !KCSAN	depends on !PREEMPT_RT	select STACKDEPOT	select STACKDEPOT_ALWAYS_INIT	help	  KernelMemorySanitizer (KMSAN) is a dynamic detector of uses of	  uninitialized values in the kernel. It is based on compiler	  instrumentation provided by Clang and thus requires Clang to build. 	  An important note is that KMSAN is not intended for production use,	  because it drastically increases kernel memory footprint and slows	  the whole system down. 	  See <file:Documentation/dev-tools/kmsan.rst> for more details. if KMSAN config KMSAN_CHECK_PARAM_RETVAL	bool "Check for uninitialized values passed to and returned from functions"	default y	help	  If the compiler supports -fsanitize-memory-param-retval, KMSAN will	  eagerly check every function parameter passed by value and every	  function return value. 	  Disabling KMSAN_CHECK_PARAM_RETVAL will result in tracking shadow for	  function parameters and return values across function borders. This	  is a more relaxed mode, but it generates more instrumentation code and	  may potentially report errors in corner cases when non-instrumented	  functions call instrumented ones. config KMSAN_KUNIT_TEST	tristate "KMSAN integration test suite" if !KUNIT_ALL_TESTS	default KUNIT_ALL_TESTS	depends on TRACEPOINTS && KUNIT	help	  Test suite for KMSAN, testing various error detection scenarios,	  and checking that reports are correctly output to console. 	  Say Y here if you want the test to be built into the kernel and run	  during boot; say M if you want the test to build as a module; say N	  if you are unsure. endif