summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2016-11-16 16:04:20 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2016-11-16 16:04:20 +0100
commitdb198e156efe3fa09e297fa74153e8dc8363bda7 (patch)
treec9030475686068a91b81c74dbe952f2057958c0a /src
parentf9c168da7e9905ec397c857dc2a2133047d2ea65 (diff)
chacha20poly1305: rely on avx and avx2
It turns out some FrankenVMs disable AVX but keep AVX2, causing issues. The crypto code now relies on having both AVX and AVX2 and the right features. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src')
-rw-r--r--src/crypto/chacha20poly1305.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/crypto/chacha20poly1305.c b/src/crypto/chacha20poly1305.c
index 8d70c02..6926f2a 100644
--- a/src/crypto/chacha20poly1305.c
+++ b/src/crypto/chacha20poly1305.c
@@ -34,7 +34,7 @@ void chacha20poly1305_init(void)
{
chacha20poly1305_use_sse2 = boot_cpu_has(X86_FEATURE_XMM2);
chacha20poly1305_use_ssse3 = boot_cpu_has(X86_FEATURE_SSSE3);
- chacha20poly1305_use_avx2 = boot_cpu_has(X86_FEATURE_AVX2);
+ chacha20poly1305_use_avx2 = boot_cpu_has(X86_FEATURE_AVX) && boot_cpu_has(X86_FEATURE_AVX2) && cpu_has_xfeatures(XFEATURE_MASK_SSE | XFEATURE_MASK_YMM, NULL);
}
#else
void chacha20poly1305_init(void) { }