aboutsummaryrefslogtreecommitdiffstatshomepage
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
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.
-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) { }