x86/crc32: update prototype for crc32_pclmul_le_16()

- 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>
This commit is contained in:
Eric Biggers 2024-12-01 17:08:37 -08:00
parent 64e3586c0b
commit 1e6b72e60a
2 changed files with 11 additions and 12 deletions

View File

@ -58,13 +58,13 @@
#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
@ -72,12 +72,11 @@
.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 */

View 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)