kernel: 5.4: import wireguard backport
[openwrt/openwrt.git] / target / linux / generic / backport-5.4 / 080-wireguard-0066-crypto-x86-poly1305-add-back-a-needed-assignment.patch
1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: Eric Biggers <ebiggers@google.com>
3 Date: Fri, 23 Oct 2020 15:27:48 -0700
4 Subject: [PATCH] crypto: x86/poly1305 - add back a needed assignment
5
6 commit c3a98c3ad5c0dc60a1ac66bf91147a3f39cac96b upstream.
7
8 One of the assignments that was removed by commit 4a0c1de64bf9 ("crypto:
9 x86/poly1305 - Remove assignments with no effect") is actually needed,
10 since it affects the return value.
11
12 This fixes the following crypto self-test failure:
13
14 alg: shash: poly1305-simd test failed (wrong result) on test vector 2, cfg="init+update+final aligned buffer"
15
16 Fixes: 4a0c1de64bf9 ("crypto: x86/poly1305 - Remove assignments with no effect")
17 Signed-off-by: Eric Biggers <ebiggers@google.com>
18 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
19 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
20 ---
21 arch/x86/crypto/poly1305_glue.c | 1 +
22 1 file changed, 1 insertion(+)
23
24 --- a/arch/x86/crypto/poly1305_glue.c
25 +++ b/arch/x86/crypto/poly1305_glue.c
26 @@ -157,6 +157,7 @@ static unsigned int crypto_poly1305_setd
27 dctx->s[1] = get_unaligned_le32(&inp[4]);
28 dctx->s[2] = get_unaligned_le32(&inp[8]);
29 dctx->s[3] = get_unaligned_le32(&inp[12]);
30 + acc += POLY1305_BLOCK_SIZE;
31 dctx->sset = true;
32 }
33 }