Re: [PATCH 2/2] Revert "kasan: Disable Software Tag-Based KASAN with GCC"

From: Andrey Konovalov
Date: Mon Oct 21 2024 - 13:13:35 EST


On Mon, Oct 21, 2024 at 2:00 PM Marco Elver <elver@xxxxxxxxxx> wrote:
>
> This reverts commit 7aed6a2c51ffc97a126e0ea0c270fab7af97ae18.
>
> Now that __no_sanitize_address attribute is fixed for KASAN_SW_TAGS with
> GCC, allow re-enabling KASAN_SW_TAGS with GCC.
>
> Cc: Andrey Konovalov <andreyknvl@xxxxxxxxx>
> Cc: Andrew Pinski <pinskia@xxxxxxxxx>
> Cc: Mark Rutland <mark.rutland@xxxxxxx>
> Cc: Will Deacon <will@xxxxxxxxxx>
> Signed-off-by: Marco Elver <elver@xxxxxxxxxx>
> ---
> lib/Kconfig.kasan | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
> index 233ab2096924..98016e137b7f 100644
> --- a/lib/Kconfig.kasan
> +++ b/lib/Kconfig.kasan
> @@ -22,11 +22,8 @@ config ARCH_DISABLE_KASAN_INLINE
> config CC_HAS_KASAN_GENERIC
> def_bool $(cc-option, -fsanitize=kernel-address)
>
> -# GCC appears to ignore no_sanitize_address when -fsanitize=kernel-hwaddress
> -# is passed. See https://bugzilla.kernel.org/show_bug.cgi?id=218854 (and
> -# the linked LKML thread) for more details.
> config CC_HAS_KASAN_SW_TAGS
> - def_bool !CC_IS_GCC && $(cc-option, -fsanitize=kernel-hwaddress)
> + def_bool $(cc-option, -fsanitize=kernel-hwaddress)
>
> # This option is only required for software KASAN modes.
> # Old GCC versions do not have proper support for no_sanitize_address.
> @@ -101,7 +98,7 @@ config KASAN_SW_TAGS
> help
> Enables Software Tag-Based KASAN.
>
> - Requires Clang.
> + Requires GCC 11+ or Clang.
>
> Supported only on arm64 CPUs and relies on Top Byte Ignore.
>
> --
> 2.47.0.rc1.288.g06298d1525-goog
>

Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxx>