crypto: x86/aesni - don't require alignment of data
authorJakub Kicinski <kuba@kernel.org>
Tue, 21 Dec 2021 15:06:11 +0000 (07:06 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 31 Dec 2021 07:10:55 +0000 (18:10 +1100)
commitd480a26bdf872529919e7c30e17f79d0d7b8c4da
treef28d84e09eb5783bd9ca22ebf046ef1e8ad02c51
parentef4d891499442a156655b0c0df56bdf539897495
crypto: x86/aesni - don't require alignment of data

x86 AES-NI routines can deal with unaligned data. Crypto context
(key, iv etc.) have to be aligned but we take care of that separately
by copying it onto the stack. We were feeding unaligned data into
crypto routines up until commit 83c83e658863 ("crypto: aesni -
refactor scatterlist processing") switched to use the full
skcipher API which uses cra_alignmask to decide data alignment.

This fixes 21% performance regression in kTLS.

Tested by booting with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y
(and running thru various kTLS packets).

CC: stable@vger.kernel.org # 5.15+
Fixes: 83c83e658863 ("crypto: aesni - refactor scatterlist processing")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/aesni-intel_glue.c