When booting an allmodconfig kernel, there are a lot of false-positives.
With a message like this 'UBSAN: Undefined behaviour in...' with a call
trace that follows.

Reworked so that when building a allmodconfig kernel that turns
everything into '=m' or '=y' will turn off UBSAN_ALIGNMENT.

Co-developed-by: Arnd Bergmann <a...@arndb.de>
Signed-off-by: Arnd Bergmann <a...@arndb.de>
Signed-off-by: Anders Roxell <anders.rox...@linaro.org>
---
 lib/Kconfig.ubsan | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
index 98fa559ebd80..a2ae4a8e4fa6 100644
--- a/lib/Kconfig.ubsan
+++ b/lib/Kconfig.ubsan
@@ -27,15 +27,19 @@ config UBSAN_SANITIZE_ALL
          Enabling this option will get kernel image size increased
          significantly.
 
-config UBSAN_ALIGNMENT
-       bool "Enable checking of pointers alignment"
+config UBSAN_NO_ALIGNMENT
+       bool "Disable checking of pointers alignment"
        depends on UBSAN
-       default y if !HAVE_EFFICIENT_UNALIGNED_ACCESS
+       default y if HAVE_EFFICIENT_UNALIGNED_ACCESS
        help
-         This option enables detection of unaligned memory accesses.
-         Enabling this option on architectures that support unaligned
+         This option disables the check of unaligned memory accesses.
+         This option should be used when building allmodconfig.
+         Disabling this option on architectures that support unaligned
          accesses may produce a lot of false positives.
 
+config UBSAN_ALIGNMENT
+       def_bool !UBSAN_NO_ALIGNMENT
+
 config TEST_UBSAN
        tristate "Module for testing for undefined behavior detection"
        depends on m && UBSAN
-- 
2.19.2

Reply via email to