[PATCH 0/5] arm64: Move kernel mode FPSIMD buffer to the stack
From: Ard Biesheuvel
Date: Thu Sep 18 2025 - 02:36:21 EST
From: Ard Biesheuvel <ardb@xxxxxxxxxx>
Move the buffer for preserving/restoring the kernel mode FPSIMD state on a
context switch out of struct thread_struct, and onto the stack, so that
the memory cost is not imposed needlessly on all tasks in the system.
Patches #1 - #3 contains some prepwork so that patch #4 can tighten the
rules around permitted usage patterns of kernel_neon_begin() and
kernel_neon_end(). This permits #5 to provide a stack buffer to
kernel_neon_begin() transparently, in a manner that ensures that it will
remain available until after the associated call to kernel_neon_end()
returns.
Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: Will Deacon <will@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Mark Brown <broonie@xxxxxxxxxx>
Ard Biesheuvel (5):
crypto/arm64: aes-ce-ccm - Avoid pointless yield of the NEON unit
crypto/arm64: sm4-ce-ccm - Avoid pointless yield of the NEON unit
crypto/arm64: sm4-ce-gcm - Avoid pointless yield of the NEON unit
arm64/fpsimd: Require kernel NEON begin/end calls from the same scope
arm64/fpsimd: Allocate kernel mode FP/SIMD buffers on the stack
arch/arm64/crypto/aes-ce-ccm-glue.c | 5 +--
arch/arm64/crypto/sm4-ce-ccm-glue.c | 10 ++----
arch/arm64/crypto/sm4-ce-gcm-glue.c | 10 ++----
arch/arm64/include/asm/neon.h | 7 ++--
arch/arm64/include/asm/processor.h | 2 +-
arch/arm64/kernel/fpsimd.c | 34 +++++++++++++-------
6 files changed, 34 insertions(+), 34 deletions(-)
base-commit: f83ec76bf285bea5727f478a68b894f5543ca76e
--
2.51.0.384.g4c02a37b29-goog