]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
lib/crc: arm64: Drop unnecessary chunking logic from crc64
authorArd Biesheuvel <ardb@kernel.org>
Mon, 30 Mar 2026 14:46:32 +0000 (16:46 +0200)
committerEric Biggers <ebiggers@kernel.org>
Thu, 2 Apr 2026 23:14:53 +0000 (16:14 -0700)
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 <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260330144630.33026-8-ardb@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
lib/crc/arm64/crc64.h

index cc65abeee24ce36ee5bf84dccac8c2ccef16c0fa..60151ec3035af16ea811fded5a218436f50c4549 100644 (file)
@@ -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);
 }