aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2013-10-01 14:34:46 +0200
committerJiri Slaby <jslaby@suse.cz>2014-04-03 10:32:11 +0200
commit6b11f0eda2cfd467f186b303bf8d9e4de08cf70b (patch)
tree7647c9589a97def4b7a31160f0ad008341cbcc9d /arch
parentfa13abce6b4afb291b5ff0c6a0de5f39e4b540a9 (diff)
crypto: sha256_ssse3 - also test for BMI2
commit 16c0c4e1656c14ef9deac189a4240b5ca19c6919 upstream. The AVX2 implementation also uses BMI2 instructions, but doesn't test for their availability. The assumption that AVX2 and BMI2 always go together is false. Some Haswells have AVX2 but not BMI2. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/crypto/sha256_ssse3_glue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/crypto/sha256_ssse3_glue.c b/arch/x86/crypto/sha256_ssse3_glue.c
index 50226c4b86e..e52947f80e6 100644
--- a/arch/x86/crypto/sha256_ssse3_glue.c
+++ b/arch/x86/crypto/sha256_ssse3_glue.c
@@ -281,7 +281,7 @@ static int __init sha256_ssse3_mod_init(void)
/* allow AVX to override SSSE3, it's a little faster */
if (avx_usable()) {
#ifdef CONFIG_AS_AVX2
- if (boot_cpu_has(X86_FEATURE_AVX2))
+ if (boot_cpu_has(X86_FEATURE_AVX2) && boot_cpu_has(X86_FEATURE_BMI2))
sha256_transform_asm = sha256_transform_rorx;
else
#endif