[PATCH 0/5] crc64: Tweak intrinsics code and enable it for ARM

Ard Biesheuvel
2026-03-30T14:46:40Z

Apply some tweaks to the new arm64 crc64 NEON intrinsics code, and wire
it up for the 32-bit ARM build. Note that true 32-bit ARM CPUs usually
don't implement the prerequisite 64x64 PMULL instructions, but 32-bit
kernels are commonly used on 64-bit capable hardware too, which do
implement the 32-bit versions of the crypto instructions if they are
implemented for the 64-bit ISA (as per the architecture).

Cc: Demian Shulhan <demyansh@gmail.com>
Cc: Eric Biggers <ebiggers@kernel.org>

Ard Biesheuvel (5):
lib/crc: arm64: Drop unnecessary chunking logic from crc64
lib/crc: arm64: Use existing macros for kernel-mode FPU cflags
ARM: Add a neon-intrinsics.h header like on arm64
lib/crc: arm64: Simplify intrinsics implementation
lib/crc: arm: Enable arm64's NEON intrinsics implementation of crc64

Documentation/arch/arm/kernel_mode_neon.rst | 4 +-
arch/arm/include/asm/neon-intrinsics.h | 64 ++++++++++++
lib/crc/Kconfig | 1 +
lib/crc/Makefile | 8 +-
lib/crc/arm/crc64.h | 36 +++++++
lib/crc/arm64/crc64-neon-inner.c | 108 ++++++++++++--------
lib/crc/arm64/crc64.h | 12 +--
7 files changed, 179 insertions(+), 54 deletions(-)
create mode 100644 arch/arm/include/asm/neon-intrinsics.h
create mode 100644 lib/crc/arm/crc64.h

base-commit: 63432fd625372a0e79fb00a4009af204f4edc013
--
2.53.0.1018.g2bb0e51243-goog