Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57ae1b05 authored by Sandy Wu's avatar Sandy Wu Committed by Herbert Xu
Browse files

crypto: crc32-pclmul - Use gas macro for pclmulqdq



Occurs when CONFIG_CRYPTO_CRC32C_INTEL=y and CONFIG_CRYPTO_CRC32C_INTEL=y.
Older versions of bintuils do not support the pclmulqdq instruction. The
PCLMULQDQ gas macro is used instead.

Signed-off-by: default avatarSandy Wu <sandyw@twitter.com>
Cc: stable@vger.kernel.org # 3.8+
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8c4196a2
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
 * SOFTWARE.
 */

#include <asm/inst.h>
#include <linux/linkage.h>

## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction
@@ -226,10 +227,10 @@ LABEL crc_ %i
	movdqa  (bufp), %xmm0			# 2 consts: K1:K2

	movq    crc_init, %xmm1			# CRC for block 1
	pclmulqdq $0x00,%xmm0,%xmm1		# Multiply by K2
	PCLMULQDQ 0x00,%xmm0,%xmm1		# Multiply by K2

	movq    crc1, %xmm2			# CRC for block 2
	pclmulqdq $0x10, %xmm0, %xmm2		# Multiply by K1
	PCLMULQDQ 0x10, %xmm0, %xmm2		# Multiply by K1

	pxor    %xmm2,%xmm1
	movq    %xmm1, %rax