[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251031135552.00004281@huawei.com>
Date: Fri, 31 Oct 2025 13:55:52 +0000
From: Jonathan Cameron <jonathan.cameron@...wei.com>
To: Ard Biesheuvel <ardb+git@...gle.com>
CC: <linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
<linux-crypto@...r.kernel.org>, <herbert@...dor.apana.org.au>,
<ebiggers@...nel.org>, Ard Biesheuvel <ardb@...nel.org>, Kees Cook
<kees@...nel.org>
Subject: Re: [PATCH v4 04/21] arm64/simd: Add scoped guard API for kernel
mode SIMD
On Fri, 31 Oct 2025 11:39:03 +0100
Ard Biesheuvel <ardb+git@...gle.com> wrote:
> From: Ard Biesheuvel <ardb@...nel.org>
>
> Encapsulate kernel_neon_begin() and kernel_neon_end() using a 'ksimd'
> cleanup guard. This hides the prototype of those functions, allowing
> them to be changed for arm64 but not ARM, without breaking code that is
> shared between those architectures (RAID6, AEGIS-128)
>
> It probably makes sense to expose this API more widely across
> architectures, as it affords more flexibility to the arch code to
> plumb it in, while imposing more rigid rules regarding the start/end
> bookends appearing in matched pairs.
>
> Reviewed-by: Kees Cook <kees@...nel.org>
> Reviewed-by: Eric Biggers <ebiggers@...nel.org>
> Signed-off-by: Ard Biesheuvel <ardb@...nel.org>
Very nice.
FWIW I looked at all the usecases and other than a couple of trivial
comments on individual patches they look good to me.
Reviewed-by: Jonathan Cameron <jonathan.cameron@...wei.com>
For patches 4-19
> ---
> arch/arm64/include/asm/simd.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/arch/arm64/include/asm/simd.h b/arch/arm64/include/asm/simd.h
> index 8e86c9e70e48..d9f83c478736 100644
> --- a/arch/arm64/include/asm/simd.h
> +++ b/arch/arm64/include/asm/simd.h
> @@ -6,12 +6,15 @@
> #ifndef __ASM_SIMD_H
> #define __ASM_SIMD_H
>
> +#include <linux/cleanup.h>
> #include <linux/compiler.h>
> #include <linux/irqflags.h>
> #include <linux/percpu.h>
> #include <linux/preempt.h>
> #include <linux/types.h>
>
> +#include <asm/neon.h>
> +
> #ifdef CONFIG_KERNEL_MODE_NEON
>
> /*
> @@ -40,4 +43,8 @@ static __must_check inline bool may_use_simd(void) {
>
> #endif /* ! CONFIG_KERNEL_MODE_NEON */
>
> +DEFINE_LOCK_GUARD_0(ksimd, kernel_neon_begin(), kernel_neon_end())
> +
> +#define scoped_ksimd() scoped_guard(ksimd)
> +
> #endif
Powered by blists - more mailing lists