linux/arch/x86/crypto
Dave Watson e5b954e8d1 crypto: aesni - Use unaligned loads from gcm_context_data
A regression was reported bisecting to 1476db2d12
"Move HashKey computation from stack to gcm_context".  That diff
moved HashKey computation from the stack, which was explicitly aligned
in the asm, to a struct provided from the C code, depending on
AESNI_ALIGN_ATTR for alignment.   It appears some compilers may not
align this struct correctly, resulting in a crash on the movdqa
instruction when attempting to encrypt or decrypt data.

Fix by using unaligned loads for the HashKeys.  On modern
hardware there is no perf difference between the unaligned and
aligned loads.  All other accesses to gcm_context_data already use
unaligned loads.

Reported-by: Mauro Rossi <issor.oruam@gmail.com>
Fixes: 1476db2d12 ("Move HashKey computation from stack to gcm_context")
Cc: <stable@vger.kernel.org>
Signed-off-by: Dave Watson <davejwatson@fb.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-08-25 19:50:42 +08:00
..
sha1-mb crypto: ahash - remove useless setting of cra_type 2018-07-09 00:30:26 +08:00
sha256-mb crypto: ahash - remove useless setting of cra_type 2018-07-09 00:30:26 +08:00
sha512-mb crypto: ahash - remove useless setting of cra_type 2018-07-09 00:30:26 +08:00
aegis128-aesni-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
aegis128-aesni-glue.c crypto: x86 - Add optimized AEGIS implementations 2018-05-19 00:14:00 +08:00
aegis128l-aesni-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
aegis128l-aesni-glue.c crypto: x86 - Add optimized AEGIS implementations 2018-05-19 00:14:00 +08:00
aegis256-aesni-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
aegis256-aesni-glue.c crypto: x86/aegis256 - Fix wrong key buffer size 2018-05-27 00:12:12 +08:00
aes_ctrby8_avx-x86_64.S crypto, x86: aesni - fix token pasting for clang 2017-03-24 22:02:55 +08:00
aes_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
aes-i586-asm_32.S crypto: x86/aes - assembler clean-ups: use ENTRY/ENDPROC, localize jump targets 2013-01-20 10:16:47 +11:00
aes-x86_64-asm_64.S crypto: x86/aes - Don't use %rbp as temporary register 2017-05-23 12:52:05 +08:00
aesni-intel_asm.S crypto: aesni - Use unaligned loads from gcm_context_data 2018-08-25 19:50:42 +08:00
aesni-intel_avx-x86_64.S crypto: aesni - make AVX2 AES-GCM work with all valid auth_tag_len 2017-05-18 13:19:55 +08:00
aesni-intel_glue.c crypto: aesni - Update aesni-intel_glue to use scatter/gather 2018-02-22 22:16:52 +08:00
blowfish_glue.c crypto: x86/blowfish: convert to skcipher interface 2018-03-03 00:03:29 +08:00
blowfish-x86_64-asm_64.S crypto: x86/blowfish - Fix RBP usage 2017-09-20 17:42:31 +08:00
camellia_aesni_avx2_glue.c crypto: x86/camellia-aesni-avx, avx2 - convert to skcipher interface 2018-03-03 00:03:32 +08:00
camellia_aesni_avx_glue.c crypto: x86/camellia-aesni-avx, avx2 - convert to skcipher interface 2018-03-03 00:03:32 +08:00
camellia_glue.c crypto: x86/camellia - convert to skcipher interface 2018-03-03 00:03:32 +08:00
camellia-aesni-avx2-asm_64.S x86/retpoline/crypto: Convert crypto assembler indirect jumps 2018-01-12 00:14:29 +01:00
camellia-aesni-avx-asm_64.S x86/retpoline/crypto: Convert crypto assembler indirect jumps 2018-01-12 00:14:29 +01:00
camellia-x86_64-asm_64.S crypto: x86/camellia - Fix RBP usage 2017-09-20 17:42:31 +08:00
cast5_avx_glue.c crypto: x86/glue_helper - rename glue_skwalk_fpu_begin() 2018-03-03 00:03:35 +08:00
cast5-avx-x86_64-asm_64.S crypto: x86/cast5 - Fix RBP usage 2017-09-20 17:42:32 +08:00
cast6_avx_glue.c crypto: x86/cast6-avx - convert to skcipher interface 2018-03-03 00:03:28 +08:00
cast6-avx-x86_64-asm_64.S crypto: x86/cast6 - Fix RBP usage 2017-09-20 17:42:33 +08:00
chacha20_glue.c crypto: x86/chacha20 - Remove cra_alignmask 2017-11-29 17:33:33 +11:00
chacha20-avx2-x86_64.S crypto: x86/chacha20 - satisfy stack validation 2.0 2017-10-12 22:51:16 +08:00
chacha20-ssse3-x86_64.S crypto: x86/chacha20 - satisfy stack validation 2.0 2017-10-12 22:51:16 +08:00
crc32-pclmul_asm.S crypto: crc32-pclmul - remove useless relative addressing 2017-10-07 12:10:30 +08:00
crc32-pclmul_glue.c crypto: hash - annotate algorithms taking optional key 2018-01-12 23:03:35 +11:00
crc32c-intel_glue.c crypto: hash - annotate algorithms taking optional key 2018-01-12 23:03:35 +11:00
crc32c-pcl-intel-asm_64.S x86/retpoline/crypto: Convert crypto assembler indirect jumps 2018-01-12 00:14:29 +01:00
crct10dif-pcl-asm_64.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
crct10dif-pclmul_glue.c x86/cpufeature: Carve out X86_FEATURE_* 2016-01-30 11:22:17 +01:00
des3_ede_glue.c crypto: x86/des3_ede - des3_ede_skciphers[] can be static 2018-03-09 22:45:53 +08:00
des3_ede-asm_64.S crypto: x86/des3_ede - Fix RBP usage 2017-09-20 17:42:34 +08:00
fpu.c crypto: aesni - Convert to skcipher 2016-11-28 21:23:20 +08:00
ghash-clmulni-intel_asm.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
ghash-clmulni-intel_glue.c crypto: ahash - remove useless setting of cra_type 2018-07-09 00:30:26 +08:00
glue_helper-asm-avx2.S crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher 2013-04-25 21:09:05 +08:00
glue_helper-asm-avx.S crypto: x86 - add more optimized XTS-mode for serpent-avx 2013-04-25 21:01:51 +08:00
glue_helper.c crypto: x86/glue_helper - rename glue_skwalk_fpu_begin() 2018-03-03 00:03:35 +08:00
Makefile crypto: x86/salsa20 - remove x86 salsa20 implementations 2018-05-31 00:13:57 +08:00
morus640_glue.c crypto: morus - Mark MORUS SIMD glue as x86-specific 2018-05-31 00:13:41 +08:00
morus640-sse2-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
morus640-sse2-glue.c crypto: x86 - Add optimized MORUS implementations 2018-05-19 00:15:35 +08:00
morus1280_glue.c crypto: morus - Mark MORUS SIMD glue as x86-specific 2018-05-31 00:13:41 +08:00
morus1280-avx2-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
morus1280-avx2-glue.c crypto: x86 - Add optimized MORUS implementations 2018-05-19 00:15:35 +08:00
morus1280-sse2-asm.S crypto: x86 - Add missing RETs 2018-07-01 23:33:20 +08:00
morus1280-sse2-glue.c crypto: x86 - Add optimized MORUS implementations 2018-05-19 00:15:35 +08:00
poly1305_glue.c crypto: shash - remove useless setting of type flags 2018-07-09 00:30:24 +08:00
poly1305-avx2-x86_64.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
poly1305-sse2-x86_64.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
serpent_avx2_glue.c crypto: x86/serpent-avx,avx2 - convert to skcipher interface 2018-03-03 00:03:22 +08:00
serpent_avx_glue.c crypto: x86/serpent-avx,avx2 - convert to skcipher interface 2018-03-03 00:03:22 +08:00
serpent_sse2_glue.c crypto: x86/serpent-sse2 - convert to skcipher interface 2018-03-03 00:03:20 +08:00
serpent-avx2-asm_64.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
serpent-avx-x86_64-asm_64.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
serpent-sse2-i586-asm_32.S crypto: x86/serpent - use ENTRY/ENDPROC for assember functions and localize jump targets 2013-01-20 10:16:50 +11:00
serpent-sse2-x86_64-asm_64.S crypto: x86/serpent - use ENTRY/ENDPROC for assember functions and localize jump targets 2013-01-20 10:16:50 +11:00
sha1_avx2_x86_64_asm.S crypto: x86/sha1-avx2 - Fix RBP usage 2017-09-20 17:42:34 +08:00
sha1_ni_asm.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
sha1_ssse3_asm.S crypto: x86/sha1-ssse3 - Fix RBP usage 2017-09-20 17:42:35 +08:00
sha1_ssse3_glue.c crypto: shash - remove useless setting of type flags 2018-07-09 00:30:24 +08:00
sha256_ni_asm.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
sha256_ssse3_glue.c crypto: shash - remove useless setting of type flags 2018-07-09 00:30:24 +08:00
sha256-avx2-asm.S crypto: x86/sha256-avx2 - Fix RBP usage 2017-09-20 17:42:36 +08:00
sha256-avx-asm.S crypto: x86/sha256-avx - Fix RBP usage 2017-09-20 17:42:36 +08:00
sha256-ssse3-asm.S crypto: x86/sha256-ssse3 - Fix RBP usage 2017-09-20 17:42:37 +08:00
sha512_ssse3_glue.c crypto: shash - remove useless setting of type flags 2018-07-09 00:30:24 +08:00
sha512-avx2-asm.S crypto: sha512-avx2 - Fix RBP usage 2017-09-20 17:42:37 +08:00
sha512-avx-asm.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
sha512-ssse3-asm.S crypto: x86 - make constants readonly, allow linker to merge them 2017-01-23 22:50:29 +08:00
twofish_avx_glue.c crypto: x86/twofish-avx - convert to skcipher interface 2018-03-03 00:03:25 +08:00
twofish_glue_3way.c crypto: x86/twofish-3way - convert to skcipher interface 2018-03-03 00:03:24 +08:00
twofish_glue.c crypto: prefix module autoloading with "crypto-" 2014-11-24 22:43:57 +08:00
twofish-avx-x86_64-asm_64.S crypto: x86/twofish - Fix RBP usage 2017-09-20 17:42:38 +08:00
twofish-i586-asm_32.S crypto: x86/twofish - assembler clean-ups: use ENTRY/ENDPROC, localize jump labels 2013-01-20 10:16:51 +11:00
twofish-x86_64-asm_64-3way.S crypto: x86/twofish-3way - Fix %rbp usage 2017-12-28 17:56:44 +11:00
twofish-x86_64-asm_64.S x86/asm: Replace "MOVQ $imm, %reg" with MOVL 2015-04-01 13:17:39 +02:00