]> Pileus Git - ~andy/linux/commitdiff
crypto: sha256_ssse3 - also test for BMI2
authorOliver Neukum <oneukum@suse.de>
Tue, 1 Oct 2013 12:34:46 +0000 (14:34 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 7 Oct 2013 06:17:10 +0000 (14:17 +0800)
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>
arch/x86/crypto/sha256_ssse3_glue.c

index 85021a4a8e0cf137b1d1fba728e8f775e16fbf02..f248546da1caa956014dfd9648814ad37f2ca8d3 100644 (file)
@@ -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