aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/crypto/zinc/chacha20
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-10-05 03:13:30 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-10-06 02:19:47 +0200
commit97e9a61fd5631985232923cff83b2ddc0ca476c0 (patch)
treeb05245f7be911d091cc0f4e4b6bc3d04db385e9e /src/crypto/zinc/chacha20
parentglobal: rename include'd C files to be .c (diff)
downloadwireguard-monolithic-historical-97e9a61fd5631985232923cff83b2ddc0ca476c0.tar.xz
wireguard-monolithic-historical-97e9a61fd5631985232923cff83b2ddc0ca476c0.zip
crypto: test all SIMD combinations
Diffstat (limited to '')
-rw-r--r--src/crypto/zinc/chacha20/chacha20-arm-glue.c2
-rw-r--r--src/crypto/zinc/chacha20/chacha20-mips-glue.c2
-rw-r--r--src/crypto/zinc/chacha20/chacha20-x86_64-glue.c3
-rw-r--r--src/crypto/zinc/chacha20/chacha20.c7
-rw-r--r--src/crypto/zinc/chacha20poly1305.c7
5 files changed, 13 insertions, 8 deletions
diff --git a/src/crypto/zinc/chacha20/chacha20-arm-glue.c b/src/crypto/zinc/chacha20/chacha20-arm-glue.c
index a397d84..a0da95d 100644
--- a/src/crypto/zinc/chacha20/chacha20-arm-glue.c
+++ b/src/crypto/zinc/chacha20/chacha20-arm-glue.c
@@ -17,7 +17,7 @@ asmlinkage void chacha20_neon(u8 *out, const u8 *in, const size_t len,
const u32 key[8], const u32 counter[4]);
static bool chacha20_use_neon __ro_after_init;
-
+static bool *const chacha20_nobs[] __initconst = { &chacha20_use_neon };
static void __init chacha20_fpu_init(void)
{
#if defined(CONFIG_ZINC_ARCH_ARM64)
diff --git a/src/crypto/zinc/chacha20/chacha20-mips-glue.c b/src/crypto/zinc/chacha20/chacha20-mips-glue.c
index 04235ca..917d8fa 100644
--- a/src/crypto/zinc/chacha20/chacha20-mips-glue.c
+++ b/src/crypto/zinc/chacha20/chacha20-mips-glue.c
@@ -5,7 +5,7 @@
asmlinkage void chacha20_mips(u32 state[16], u8 *out, const u8 *in,
const size_t len);
-
+static bool *const chacha20_nobs[] __initconst = { };
static void __init chacha20_fpu_init(void)
{
}
diff --git a/src/crypto/zinc/chacha20/chacha20-x86_64-glue.c b/src/crypto/zinc/chacha20/chacha20-x86_64-glue.c
index b89d5e1..f5a9c21 100644
--- a/src/crypto/zinc/chacha20/chacha20-x86_64-glue.c
+++ b/src/crypto/zinc/chacha20/chacha20-x86_64-glue.c
@@ -23,6 +23,9 @@ static bool chacha20_use_ssse3 __ro_after_init;
static bool chacha20_use_avx2 __ro_after_init;
static bool chacha20_use_avx512 __ro_after_init;
static bool chacha20_use_avx512vl __ro_after_init;
+static bool *const chacha20_nobs[] __initconst = {
+ &chacha20_use_ssse3, &chacha20_use_avx2, &chacha20_use_avx512,
+ &chacha20_use_avx512vl };
static void __init chacha20_fpu_init(void)
{
diff --git a/src/crypto/zinc/chacha20/chacha20.c b/src/crypto/zinc/chacha20/chacha20.c
index bc7e9be..971391c 100644
--- a/src/crypto/zinc/chacha20/chacha20.c
+++ b/src/crypto/zinc/chacha20/chacha20.c
@@ -8,6 +8,7 @@
*/
#include <zinc/chacha20.h>
+#include "../selftest/run.h"
#include <linux/kernel.h>
#include <linux/module.h>
@@ -22,6 +23,7 @@
#elif defined(CONFIG_ZINC_ARCH_MIPS)
#include "chacha20-mips-glue.c"
#else
+static bool *const chacha20_nobs[] __initconst = { };
static void __init chacha20_fpu_init(void)
{
}
@@ -171,10 +173,9 @@ static int __init mod_init(void)
{
if (!nosimd)
chacha20_fpu_init();
-#ifdef CONFIG_ZINC_SELFTEST
- if (WARN_ON(!chacha20_selftest()))
+ if (!selftest_run("chacha20", chacha20_selftest, chacha20_nobs,
+ ARRAY_SIZE(chacha20_nobs)))
return -ENOTRECOVERABLE;
-#endif
return 0;
}
diff --git a/src/crypto/zinc/chacha20poly1305.c b/src/crypto/zinc/chacha20poly1305.c
index 6c8ff3a..6f709e0 100644
--- a/src/crypto/zinc/chacha20poly1305.c
+++ b/src/crypto/zinc/chacha20poly1305.c
@@ -10,6 +10,8 @@
#include <zinc/chacha20poly1305.h>
#include <zinc/chacha20.h>
#include <zinc/poly1305.h>
+#include "selftest/run.h"
+
#include <asm/unaligned.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -347,10 +349,9 @@ int __init chacha20poly1305_mod_init(void)
static int __init mod_init(void)
#endif
{
-#ifdef CONFIG_ZINC_SELFTEST
- if (WARN_ON(!chacha20poly1305_selftest()))
+ if (!selftest_run("chacha20poly1305", chacha20poly1305_selftest,
+ NULL, 0))
return -ENOTRECOVERABLE;
-#endif
return 0;
}