Message ID | 20190223065408.6279-3-ebiggers@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Herbert Xu |
Headers | show |
Series | crypto: arm64/chacha - fix for big endian | expand |
On Sat, 23 Feb 2019 at 07:54, Eric Biggers <ebiggers@kernel.org> wrote: > > From: Eric Biggers <ebiggers@google.com> > > On big endian arm64 kernels, the xchacha20-neon and xchacha12-neon > self-tests fail because hchacha_block_neon() outputs little endian words > but the C code expects native endianness. Fix it to output the words in > native endianness (which also makes it match the arm32 version). > > Fixes: cc7cf991e9eb ("crypto: arm64/chacha20 - add XChaCha20 support") > Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > arch/arm64/crypto/chacha-neon-core.S | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/crypto/chacha-neon-core.S b/arch/arm64/crypto/chacha-neon-core.S > index bfb80e10ff7b0..706c4e10e9e29 100644 > --- a/arch/arm64/crypto/chacha-neon-core.S > +++ b/arch/arm64/crypto/chacha-neon-core.S > @@ -158,8 +158,8 @@ ENTRY(hchacha_block_neon) > mov w3, w2 > bl chacha_permute > > - st1 {v0.16b}, [x1], #16 > - st1 {v3.16b}, [x1] > + st1 {v0.4s}, [x1], #16 > + st1 {v3.4s}, [x1] > > ldp x29, x30, [sp], #16 > ret > -- > 2.20.1 >
diff --git a/arch/arm64/crypto/chacha-neon-core.S b/arch/arm64/crypto/chacha-neon-core.S index bfb80e10ff7b0..706c4e10e9e29 100644 --- a/arch/arm64/crypto/chacha-neon-core.S +++ b/arch/arm64/crypto/chacha-neon-core.S @@ -158,8 +158,8 @@ ENTRY(hchacha_block_neon) mov w3, w2 bl chacha_permute - st1 {v0.16b}, [x1], #16 - st1 {v3.16b}, [x1] + st1 {v0.4s}, [x1], #16 + st1 {v3.4s}, [x1] ldp x29, x30, [sp], #16 ret