Skip to content

Commit

Permalink
x86/crc32: update prototype for crc32_pclmul_le_16()
Browse files Browse the repository at this point in the history
- 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>
  • Loading branch information
Eric Biggers committed Dec 2, 2024
1 parent 64e3586 commit 1e6b72e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
19 changes: 9 additions & 10 deletions arch/x86/crypto/crc32-pclmul_asm.S
Original file line number Diff line number Diff line change
Expand Up @@ -58,26 +58,25 @@
#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 */
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/crypto/crc32-pclmul_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 1e6b72e

Please sign in to comment.