lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0031/1039] crypto: x86/aesni - dont require alignment of data
    Date
    From: Jakub Kicinski <kuba@kernel.org>

    commit d480a26bdf872529919e7c30e17f79d0d7b8c4da upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/x86/crypto/aesni-intel_glue.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/x86/crypto/aesni-intel_glue.c
    +++ b/arch/x86/crypto/aesni-intel_glue.c
    @@ -1107,7 +1107,7 @@ static struct aead_alg aesni_aeads[] = {
    .cra_flags = CRYPTO_ALG_INTERNAL,
    .cra_blocksize = 1,
    .cra_ctxsize = sizeof(struct aesni_rfc4106_gcm_ctx),
    - .cra_alignmask = AESNI_ALIGN - 1,
    + .cra_alignmask = 0,
    .cra_module = THIS_MODULE,
    },
    }, {
    @@ -1124,7 +1124,7 @@ static struct aead_alg aesni_aeads[] = {
    .cra_flags = CRYPTO_ALG_INTERNAL,
    .cra_blocksize = 1,
    .cra_ctxsize = sizeof(struct generic_gcmaes_ctx),
    - .cra_alignmask = AESNI_ALIGN - 1,
    + .cra_alignmask = 0,
    .cra_module = THIS_MODULE,
    },
    } };

    \
     
     \ /
      Last update: 2022-01-25 01:11    [W:2.731 / U:0.484 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site