aboutsummaryrefslogtreecommitdiffstatshomepage
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
commit34df71964861e7ea5f542bac0225c8b82bb8d9b2 (patch)
treecedcf666f33b1f6e5f5e8f66545d201853dd9865 /src
parentdevice: better debug message (diff)
downloadwireguard-monolithic-historical-34df71964861e7ea5f542bac0225c8b82bb8d9b2.tar.xz
wireguard-monolithic-historical-34df71964861e7ea5f542bac0225c8b82bb8d9b2.zip
chacha20poly1305: rely on avx and avx2experimental-0.0.20161116
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.
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) { }