diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-09-22 07:12:39 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-09-23 17:05:23 +0200 |
commit | 97df8918f17323fb3f8c653243e637824b5e353a (patch) | |
tree | 32c26420d4c407982393bbd5dc390cb4ca1d9750 /src/crypto/zinc/poly1305 | |
parent | 72d89c6747384cc11aad0ab7052be4a260a0b512 (diff) |
crypto-arm: rework KERNEL_MODE_NEON handling
It might be defined even if the compiler doesn't support it.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/crypto/zinc/poly1305')
-rw-r--r-- | src/crypto/zinc/poly1305/poly1305-arm-glue.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/crypto/zinc/poly1305/poly1305-arm-glue.h b/src/crypto/zinc/poly1305/poly1305-arm-glue.h index 1dfd549..fb7be17 100644 --- a/src/crypto/zinc/poly1305/poly1305-arm-glue.h +++ b/src/crypto/zinc/poly1305/poly1305-arm-glue.h @@ -6,13 +6,16 @@ #include <asm/hwcap.h> #include <asm/neon.h> +#define ARM_USE_NEON (defined(CONFIG_KERNEL_MODE_NEON) && \ + (defined(CONFIG_ARM64) || \ + (defined(__LINUX_ARM_ARCH__) && \ + __LINUX_ARM_ARCH__ == 7))) + asmlinkage void poly1305_init_arm(void *ctx, const u8 key[16]); asmlinkage void poly1305_blocks_arm(void *ctx, const u8 *inp, const size_t len, const u32 padbit); asmlinkage void poly1305_emit_arm(void *ctx, u8 mac[16], const u32 nonce[4]); -#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && \ - (defined(CONFIG_64BIT) || __LINUX_ARM_ARCH__ >= 7) -#define ARM_USE_NEON +#if ARM_USE_NEON asmlinkage void poly1305_blocks_neon(void *ctx, const u8 *inp, const size_t len, const u32 padbit); asmlinkage void poly1305_emit_neon(void *ctx, u8 mac[16], const u32 nonce[4]); @@ -54,7 +57,7 @@ struct poly1305_arch_internal { }; #endif -#if defined(ARM_USE_NEON) +#if ARM_USE_NEON static void convert_to_base2_64(void *ctx) { struct poly1305_arch_internal *state = ctx; @@ -92,7 +95,7 @@ static inline bool poly1305_blocks_arch(void *ctx, const u8 *inp, const size_t len, const u32 padbit, simd_context_t *simd_context) { -#if defined(ARM_USE_NEON) +#if ARM_USE_NEON if (poly1305_use_neon && simd_use(simd_context)) { poly1305_blocks_neon(ctx, inp, len, padbit); return true; @@ -108,7 +111,7 @@ static inline bool poly1305_emit_arch(void *ctx, u8 mac[POLY1305_MAC_SIZE], const u32 nonce[4], simd_context_t *simd_context) { -#if defined(ARM_USE_NEON) +#if ARM_USE_NEON if (poly1305_use_neon && simd_use(simd_context)) { poly1305_emit_neon(ctx, mac, nonce); return true; |