]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/crc32: update prototype for crc32_pclmul_le_16()
authorEric Biggers <ebiggers@google.com>
Mon, 2 Dec 2024 01:08:37 +0000 (17:08 -0800)
committerEric Biggers <ebiggers@google.com>
Mon, 2 Dec 2024 01:23:01 +0000 (17:23 -0800)
- Change the len parameter from unsigned int to size_t, so that the
  library function which takes a size_t can safely use this code.

- Move the crc parameter to the front, as this is the usual convention.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20241202010844.144356-13-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
arch/x86/crypto/crc32-pclmul_asm.S
arch/x86/crypto/crc32-pclmul_glue.c

index 5d31137e2c7dfca0b438c32054e58d16e7add2ba..f9637789cac19b4702eea336c41f320cffcd4801 100644 (file)
 #define CONSTANT %xmm0
 
 #ifdef __x86_64__
-#define BUF     %rdi
-#define LEN     %rsi
-#define CRC     %edx
+#define CRC     %edi
+#define BUF     %rsi
+#define LEN     %rdx
 #else
-#define BUF     %eax
-#define LEN     %edx
-#define CRC     %ecx
+#define CRC     %eax
+#define BUF     %edx
+#define LEN     %ecx
 #endif
 
 
 .text
 /**
  *      Calculate crc32
- *      BUF - buffer (16 bytes aligned)
- *      LEN - sizeof buffer (16 bytes aligned), LEN should be grater than 63
  *      CRC - initial crc32
+ *      BUF - buffer (16 bytes aligned)
+ *      LEN - sizeof buffer (16 bytes aligned), LEN should be greater than 63
  *      return %eax crc32
- *      uint crc32_pclmul_le_16(unsigned char const *buffer,
- *                          size_t len, uint crc32)
+ *      u32 crc32_pclmul_le_16(u32 crc, const u8 *buffer, size_t len);
  */
 
 SYM_FUNC_START(crc32_pclmul_le_16) /* buffer and buffer size are 16 bytes aligned */
index 9f5e342b9845d98bd15658ce173f6ea383c42eca..9d14eac51c5bbf13a75051da0ad45495c613f602 100644 (file)
@@ -46,7 +46,7 @@
 #define SCALE_F                        16L     /* size of xmm register */
 #define SCALE_F_MASK           (SCALE_F - 1)
 
-u32 crc32_pclmul_le_16(unsigned char const *buffer, size_t len, u32 crc32);
+u32 crc32_pclmul_le_16(u32 crc, const u8 *buffer, size_t len);
 
 static u32 __attribute__((pure))
        crc32_pclmul_le(u32 crc, unsigned char const *p, size_t len)
@@ -71,7 +71,7 @@ static u32 __attribute__((pure))
        iremainder = len & SCALE_F_MASK;
 
        kernel_fpu_begin();
-       crc = crc32_pclmul_le_16(p, iquotient, crc);
+       crc = crc32_pclmul_le_16(crc, p, iquotient);
        kernel_fpu_end();
 
        if (iremainder)