linux/arch/x86/crypto
Ard Biesheuvel 00425bb181 crypto: x86/sha512_ssse3 - fixup for asm function prototype change
Patch e68410ebf6 ("crypto: x86/sha512_ssse3 - move SHA-384/512
SSSE3 implementation to base layer") changed the prototypes of the
core asm SHA-512 implementations so that they are compatible with
the prototype used by the base layer.

However, in one instance, the register that was used for passing the
input buffer was reused as a scratch register later on in the code,
and since the input buffer param changed places with the digest param
-which needs to be written back before the function returns- this
resulted in the scratch register to be dereferenced in a memory write
operation, causing a GPF.

Fix this by changing the scratch register to use the same register as
the input buffer param again.

Fixes: e68410ebf6 ("crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer")
Reported-By: Bobby Powers <bobbypowers@gmail.com>
Tested-By: Bobby Powers <bobbypowers@gmail.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2015-04-24 20:09:01 +08:00
..
sha-mb crypto: sha-mb - mark Multi buffer SHA1 helper cipher 2015-03-31 21:21:13 +08:00
Makefile crypto: sha-mb - Add avx2_supported check. 2015-01-05 21:35:02 +11:00
aes-i586-asm_32.S
aes-x86_64-asm_64.S
aes_ctrby8_avx-x86_64.S crypto: aesni - fix "by8" variant for 128 bit keys 2015-01-05 21:35:02 +11:00
aes_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
aesni-intel_asm.S crypto: aesni - Add support for 192 & 256 bit keys to AESNI RFC4106 2015-01-14 21:56:51 +11:00
aesni-intel_avx-x86_64.S
aesni-intel_glue.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-04-15 10:42:15 -07:00
blowfish-x86_64-asm_64.S
blowfish_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
camellia-aesni-avx-asm_64.S
camellia-aesni-avx2-asm_64.S
camellia-x86_64-asm_64.S
camellia_aesni_avx2_glue.c crypto: camellia_aesni_avx2 - mark AES-NI Camellia helper ciphers 2015-03-31 21:21:07 +08:00
camellia_aesni_avx_glue.c crypto: camellia_aesni_avx - mark AVX Camellia helper ciphers 2015-03-31 21:21:08 +08:00
camellia_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
cast5-avx-x86_64-asm_64.S
cast5_avx_glue.c crypto: cast5_avx - mark CAST5 helper ciphers 2015-03-31 21:21:08 +08:00
cast6-avx-x86_64-asm_64.S
cast6_avx_glue.c crypto: cast6_avx - mark CAST6 helper ciphers 2015-03-31 21:21:09 +08:00
crc32-pclmul_asm.S
crc32-pclmul_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
crc32c-intel_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
crc32c-pcl-intel-asm_64.S x86/asm: Replace "MOVQ $imm, %reg" with MOVL 2015-04-01 13:17:39 +02:00
crct10dif-pcl-asm_64.S
crct10dif-pclmul_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
des3_ede-asm_64.S
des3_ede_glue.c crypto: x86/des3_ede - drop bogus module aliases 2015-01-13 22:30:52 +11:00
fpu.c crypto: include crypto- module prefix in template 2014-11-26 20:06:30 +08:00
ghash-clmulni-intel_asm.S
ghash-clmulni-intel_glue.c crypto: clmulni - mark ghash clmulni helper ciphers 2015-03-31 21:21:06 +08:00
glue_helper-asm-avx.S
glue_helper-asm-avx2.S
glue_helper.c crypto: don't export static symbol 2015-03-13 21:37:15 +11:00
salsa20-i586-asm_32.S
salsa20-x86_64-asm_64.S
salsa20_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
serpent-avx-x86_64-asm_64.S
serpent-avx2-asm_64.S
serpent-sse2-i586-asm_32.S
serpent-sse2-x86_64-asm_64.S
serpent_avx2_glue.c crypto: serpent_avx2 - mark Serpent AVX2 helper ciphers 2015-03-31 21:21:09 +08:00
serpent_avx_glue.c crypto: serpent_avx - mark Serpent AVX helper ciphers 2015-03-31 21:21:10 +08:00
serpent_sse2_glue.c crypto: serpent_sse2 - mark Serpent SSE2 helper ciphers 2015-03-31 21:21:10 +08:00
sha1_avx2_x86_64_asm.S
sha1_ssse3_asm.S
sha1_ssse3_glue.c crypto: x86/sha1_ssse3 - move SHA-1 SSSE3 implementation to base layer 2015-04-10 21:39:47 +08:00
sha256-avx-asm.S crypto: x86/sha256_ssse3 - move SHA-224/256 SSSE3 implementation to base layer 2015-04-10 21:39:47 +08:00
sha256-avx2-asm.S crypto: x86/sha256_ssse3 - move SHA-224/256 SSSE3 implementation to base layer 2015-04-10 21:39:47 +08:00
sha256-ssse3-asm.S crypto: x86/sha256_ssse3 - move SHA-224/256 SSSE3 implementation to base layer 2015-04-10 21:39:47 +08:00
sha256_ssse3_glue.c crypto: x86/sha256_ssse3 - move SHA-224/256 SSSE3 implementation to base layer 2015-04-10 21:39:47 +08:00
sha512-avx-asm.S crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer 2015-04-10 21:39:48 +08:00
sha512-avx2-asm.S crypto: x86/sha512_ssse3 - fixup for asm function prototype change 2015-04-24 20:09:01 +08:00
sha512-ssse3-asm.S crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer 2015-04-10 21:39:48 +08:00
sha512_ssse3_glue.c crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer 2015-04-10 21:39:48 +08:00
twofish-avx-x86_64-asm_64.S
twofish-i586-asm_32.S
twofish-x86_64-asm_64-3way.S
twofish-x86_64-asm_64.S x86/asm: Replace "MOVQ $imm, %reg" with MOVL 2015-04-01 13:17:39 +02:00
twofish_avx_glue.c crypto: twofish_avx - mark Twofish AVX helper ciphers 2015-03-31 21:21:11 +08:00
twofish_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
twofish_glue_3way.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00