diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-10-05 03:13:30 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-10-06 02:19:47 +0200 |
commit | 97e9a61fd5631985232923cff83b2ddc0ca476c0 (patch) | |
tree | b05245f7be911d091cc0f4e4b6bc3d04db385e9e /src/crypto/zinc/chacha20 | |
parent | global: rename include'd C files to be .c (diff) | |
download | wireguard-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.c | 2 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20-mips-glue.c | 2 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20-x86_64-glue.c | 3 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20/chacha20.c | 7 | ||||
-rw-r--r-- | src/crypto/zinc/chacha20poly1305.c | 7 |
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; } |