kernel: 5.4: import wireguard backport
[openwrt/openwrt.git] / target / linux / generic / backport-5.4 / 080-wireguard-0048-crypto-x86-poly1305-emit-does-base-conversion-itself.patch
1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: "Jason A. Donenfeld" <Jason@zx2c4.com>
3 Date: Fri, 17 Jan 2020 11:42:22 +0100
4 Subject: [PATCH] crypto: x86/poly1305 - emit does base conversion itself
5
6 commit f9e7fe32a792726186301423ff63a465d63386e1 upstream.
7
8 The emit code does optional base conversion itself in assembly, so we
9 don't need to do that here. Also, neither one of these functions uses
10 simd instructions, so checking for that doesn't make sense either.
11
12 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
13 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
14 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
15 ---
16 arch/x86/crypto/poly1305_glue.c | 8 ++------
17 1 file changed, 2 insertions(+), 6 deletions(-)
18
19 --- a/arch/x86/crypto/poly1305_glue.c
20 +++ b/arch/x86/crypto/poly1305_glue.c
21 @@ -123,13 +123,9 @@ static void poly1305_simd_blocks(void *c
22 static void poly1305_simd_emit(void *ctx, u8 mac[POLY1305_DIGEST_SIZE],
23 const u32 nonce[4])
24 {
25 - struct poly1305_arch_internal *state = ctx;
26 -
27 - if (!IS_ENABLED(CONFIG_AS_AVX) || !static_branch_likely(&poly1305_use_avx) ||
28 - !state->is_base2_26 || !crypto_simd_usable()) {
29 - convert_to_base2_64(ctx);
30 + if (!IS_ENABLED(CONFIG_AS_AVX) || !static_branch_likely(&poly1305_use_avx))
31 poly1305_emit_x86_64(ctx, mac, nonce);
32 - } else
33 + else
34 poly1305_emit_avx(ctx, mac, nonce);
35 }
36