kernel-5.4: backport latest patches for wireguard
[openwrt/openwrt.git] / target / linux / generic / backport-5.4 / 080-wireguard-0124-crypto-mips-poly1305-enable-for-all-MIPS-processors.patch
1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: "Maciej W. Rozycki" <macro@orcam.me.uk>
3 Date: Thu, 11 Mar 2021 21:50:47 -0700
4 Subject: [PATCH] crypto: mips/poly1305 - enable for all MIPS processors
5
6 commit 6c810cf20feef0d4338e9b424ab7f2644a8b353e upstream.
7
8 The MIPS Poly1305 implementation is generic MIPS code written such as to
9 support down to the original MIPS I and MIPS III ISA for the 32-bit and
10 64-bit variant respectively. Lift the current limitation then to enable
11 code for MIPSr1 ISA or newer processors only and have it available for
12 all MIPS processors.
13
14 Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
15 Fixes: a11d055e7a64 ("crypto: mips/poly1305 - incorporate OpenSSL/CRYPTOGAMS optimized implementation")
16 Cc: stable@vger.kernel.org # v5.5+
17 Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
18 Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
19 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
20 ---
21 arch/mips/crypto/Makefile | 4 ++--
22 crypto/Kconfig | 2 +-
23 drivers/net/Kconfig | 2 +-
24 3 files changed, 4 insertions(+), 4 deletions(-)
25
26 --- a/arch/mips/crypto/Makefile
27 +++ b/arch/mips/crypto/Makefile
28 @@ -12,8 +12,8 @@ AFLAGS_chacha-core.o += -O2 # needed to
29 obj-$(CONFIG_CRYPTO_POLY1305_MIPS) += poly1305-mips.o
30 poly1305-mips-y := poly1305-core.o poly1305-glue.o
31
32 -perlasm-flavour-$(CONFIG_CPU_MIPS32) := o32
33 -perlasm-flavour-$(CONFIG_CPU_MIPS64) := 64
34 +perlasm-flavour-$(CONFIG_32BIT) := o32
35 +perlasm-flavour-$(CONFIG_64BIT) := 64
36
37 quiet_cmd_perlasm = PERLASM $@
38 cmd_perlasm = $(PERL) $(<) $(perlasm-flavour-y) $(@)
39 --- a/crypto/Kconfig
40 +++ b/crypto/Kconfig
41 @@ -740,7 +740,7 @@ config CRYPTO_POLY1305_X86_64
42
43 config CRYPTO_POLY1305_MIPS
44 tristate "Poly1305 authenticator algorithm (MIPS optimized)"
45 - depends on CPU_MIPS32 || (CPU_MIPS64 && 64BIT)
46 + depends on MIPS
47 select CRYPTO_ARCH_HAVE_LIB_POLY1305
48
49 config CRYPTO_MD4
50 --- a/drivers/net/Kconfig
51 +++ b/drivers/net/Kconfig
52 @@ -92,7 +92,7 @@ config WIREGUARD
53 select CRYPTO_POLY1305_ARM if ARM
54 select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
55 select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
56 - select CRYPTO_POLY1305_MIPS if CPU_MIPS32 || (CPU_MIPS64 && 64BIT)
57 + select CRYPTO_POLY1305_MIPS if MIPS
58 help
59 WireGuard is a secure, fast, and easy to use replacement for IPSec
60 that uses modern cryptography and clever networking tricks. It's