From: Ard Biesheuvel Date: Mon, 30 Mar 2026 14:46:32 +0000 (+0200) Subject: lib/crc: arm64: Drop unnecessary chunking logic from crc64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0718ed60d60299840cfc2a408eb26042a20d186;p=thirdparty%2Flinux.git lib/crc: arm64: Drop unnecessary chunking logic from crc64 On arm64, kernel mode NEON executes with preemption enabled, so there is no need to chunk the input by hand. Signed-off-by: Ard Biesheuvel Link: https://lore.kernel.org/r/20260330144630.33026-8-ardb@kernel.org Signed-off-by: Eric Biggers --- diff --git a/lib/crc/arm64/crc64.h b/lib/crc/arm64/crc64.h index cc65abeee24ce..60151ec3035af 100644 --- a/lib/crc/arm64/crc64.h +++ b/lib/crc/arm64/crc64.h @@ -16,15 +16,13 @@ static inline u64 crc64_nvme_arch(u64 crc, const u8 *p, size_t len) { if (len >= 128 && cpu_have_named_feature(PMULL) && likely(may_use_simd())) { - do { - size_t chunk = min_t(size_t, len & ~15, SZ_4K); + size_t chunk = len & ~15; - scoped_ksimd() - crc = crc64_nvme_arm64_c(crc, p, chunk); + scoped_ksimd() + crc = crc64_nvme_arm64_c(crc, p, chunk); - p += chunk; - len -= chunk; - } while (len >= 128); + p += chunk; + len &= 15; } return crc64_nvme_generic(crc, p, len); }