2024-03-20 12:46:22

by Uros Bizjak

[permalink] [raw]
Subject: [PATCH] x86/percpu: Re-enable named address spaces with KASAN for GCC 13.3+

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 <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Brian Gerst <[email protected]>
Cc: Denys Vlasenko <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Josh Poimboeuf <[email protected]>
---
arch/x86/Kconfig | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7aed87cbf386..09455d93b947 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -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)
--
2.44.0



2024-03-20 13:34:40

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: x86/percpu] x86/percpu: Re-enable named address spaces with KASAN for GCC 13.3+

The following commit has been merged into the x86/percpu branch of tip:

Commit-ID: f61f02d1ff788ae5ad485ef8edd88d9c93557994
Gitweb: https://git.kernel.org/tip/f61f02d1ff788ae5ad485ef8edd88d9c93557994
Author: Uros Bizjak <[email protected]>
AuthorDate: Wed, 20 Mar 2024 13:45:49 +01:00
Committer: Ingo Molnar <[email protected]>
CommitterDate: Wed, 20 Mar 2024 14:22:56 +01:00

x86/percpu: Re-enable named address spaces with KASAN for GCC 13.3+

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 <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Josh Poimboeuf <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Josh Poimboeuf <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Cc: Jakub Jelinek <[email protected]>
Cc: Nick Desaulniers <[email protected]>
Cc: Sean Christopherson <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
arch/x86/Kconfig | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7aed87c..09455d9 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -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)