On Wed, Mar 03, 2021 at 02:16:04AM +0100, Maciej W. Rozycki wrote:
The MIPS Poly1305 implementation is generic MIPS code written such as to support down to the original MIPS I and MIPS III ISA for the 32-bit and 64-bit variant respectively. Lift the current limitation then to enable code for MIPSr1 ISA or newer processors only and have it available for all MIPS processors.
Signed-off-by: Maciej W. Rozycki macro@orcam.me.uk Fixes: a11d055e7a64 ("crypto: mips/poly1305 - incorporate OpenSSL/CRYPTOGAMS optimized implementation") Cc: stable@vger.kernel.org # v5.5+
On Wed, 3 Mar 2021, Jason A. Donenfeld wrote:
Would you mind sending this for 5.12 in an rc at some point, rather than waiting for 5.13? I'd like to see this backported to 5.10 and 5.4 for OpenWRT.
why is this so important for OpenWRT ? Just to select CRYPTO_POLY1305_MIPS ?
Yes. The performance boost on Octeon is significant for WireGuard users.
But that's the wrong fix for that purpose. I've skimmed over that module and there's nothing MIPS64-specific there. In fact it's plain generic MIPS assembly, with some R2 optimisations enabled where applicable but not necessary (and then R6 tweaks, but that's irrelevant here).
As a matter of interest I have just built it successfully for a MIPS I DECstation configuration:
$ file arch/mips/crypto/poly1305-mips.ko arch/mips/crypto/poly1305-mips.ko: ELF 32-bit LSB relocatable, MIPS, MIPS-I version 1 (SYSV), BuildID[sha1]=d36384d94f60ba7deff638ca8a24500120b45b56, not stripped $
Patch included, please apply.
So while your change is surely right, what you want is this really.
Maciej
arch/mips/crypto/Makefile | 4 ++-- crypto/Kconfig | 2 +- drivers/net/Kconfig | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
applied to mips-fixes.
Thomas.