]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/percpu: Re-enable named address spaces with KASAN for GCC 13.3+
authorUros Bizjak <ubizjak@gmail.com>
Wed, 20 Mar 2024 12:45:49 +0000 (13:45 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 20 Mar 2024 13:22:56 +0000 (14:22 +0100)
Commit:

  68fb3ca0e408 ("x86/percpu: Disable named address spaces for KASAN")

... disabled support for named address spaces with KASAN due to
the incompatibility issue between named AS and KASAN.

GCC 13.3 has fixed this issue (GCC PR sanitizer/111736) so the
support for named address spaces can be re-enabled with KASAN
for GCC compiler version >= 13.3.

Note that the patch considers GCC 14 to be fixed - if somebody is
using snapshots of the GCC 14 before the fix, they should upgrade.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20240320124603.566923-1-ubizjak@gmail.com
arch/x86/Kconfig

index 7aed87cbf386257237ca55d98ff61eb22b0b7ba2..09455d93b947f0394c87474f4ee22c6394d0639e 100644 (file)
@@ -2435,14 +2435,17 @@ endmenu
 config CC_HAS_NAMED_AS
        def_bool CC_IS_GCC && GCC_VERSION >= 120100
 
+config CC_HAS_NAMED_AS_FIXED_ASAN
+       def_bool CC_IS_GCC && GCC_VERSION >= 130300
+
 config USE_X86_SEG_SUPPORT
        def_bool y
        depends on CC_HAS_NAMED_AS
        #
-       # -fsanitize=kernel-address (KASAN) is at the moment incompatible
-       # with named address spaces - see GCC PR sanitizer/111736.
+       # -fsanitize=kernel-address (KASAN) is incompatible with named
+       # address spaces with GCC < 13.3 - see GCC PR sanitizer/111736.
        #
-       depends on !KASAN
+       depends on !KASAN || CC_HAS_NAMED_AS_FIXED_ASAN
 
 config CC_HAS_SLS
        def_bool $(cc-option,-mharden-sls=all)