On Sat, Mar 14, 2026 at 09:55:15AM -0700, Eric Biggers wrote:
> The tegra crypto driver failed to set the CRYPTO_ALG_ASYNC on its
> asynchronous algorithms, causing the crypto API to select them for users
> that request only synchronous algorithms.  This causes crashes (at
> least).  Fix this by adding the flag like what the other drivers do.
> 
> Reported-by: Zorro Lang <[email protected]>
> Closes: 
> https://lore.kernel.org/r/20260314080937.pghb4aa7d4je3...@dell-per750-06-vm-08.rhts.eng.pek2.redhat.com
> Fixes: 0880bb3b00c8 ("crypto: tegra - Add Tegra Security Engine driver")
> Cc: [email protected]
> Cc: Akhil R <[email protected]>
> Signed-off-by: Eric Biggers <[email protected]>
> ---

Thanks for you quick response, Eric. This fix works on my side. With this patch,
same reproducer can't trigger that bug anymore.

Thanks,
Zorro

> 
> This patch is targeting crypto/master
> 
>  drivers/crypto/tegra/tegra-se-aes.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/tegra/tegra-se-aes.c 
> b/drivers/crypto/tegra/tegra-se-aes.c
> index 0e07d0523291a..cb97a59084519 100644
> --- a/drivers/crypto/tegra/tegra-se-aes.c
> +++ b/drivers/crypto/tegra/tegra-se-aes.c
> @@ -592,10 +592,11 @@ static struct tegra_se_alg tegra_aes_algs[] = {
>                       .ivsize = AES_BLOCK_SIZE,
>                       .base = {
>                               .cra_name = "xts(aes)",
>                               .cra_driver_name = "xts-aes-tegra",
>                               .cra_priority = 500,
> +                             .cra_flags = CRYPTO_ALG_ASYNC,
>                               .cra_blocksize = AES_BLOCK_SIZE,
>                               .cra_ctxsize       = sizeof(struct 
> tegra_aes_ctx),
>                               .cra_alignmask     = (__alignof__(u64) - 1),
>                               .cra_module        = THIS_MODULE,
>                       },
> @@ -1920,10 +1921,11 @@ static struct tegra_se_alg tegra_aead_algs[] = {
>                       .ivsize = GCM_AES_IV_SIZE,
>                       .base = {
>                               .cra_name = "gcm(aes)",
>                               .cra_driver_name = "gcm-aes-tegra",
>                               .cra_priority = 500,
> +                             .cra_flags = CRYPTO_ALG_ASYNC,
>                               .cra_blocksize = 1,
>                               .cra_ctxsize = sizeof(struct tegra_aead_ctx),
>                               .cra_alignmask = 0xf,
>                               .cra_module = THIS_MODULE,
>                       },
> @@ -1942,10 +1944,11 @@ static struct tegra_se_alg tegra_aead_algs[] = {
>                       .chunksize = AES_BLOCK_SIZE,
>                       .base = {
>                               .cra_name = "ccm(aes)",
>                               .cra_driver_name = "ccm-aes-tegra",
>                               .cra_priority = 500,
> +                             .cra_flags = CRYPTO_ALG_ASYNC,
>                               .cra_blocksize = 1,
>                               .cra_ctxsize = sizeof(struct tegra_aead_ctx),
>                               .cra_alignmask = 0xf,
>                               .cra_module = THIS_MODULE,
>                       },
> @@ -1969,11 +1972,11 @@ static struct tegra_se_alg tegra_cmac_algs[] = {
>                       .halg.statesize = sizeof(struct tegra_cmac_reqctx),
>                       .halg.base = {
>                               .cra_name = "cmac(aes)",
>                               .cra_driver_name = "tegra-se-cmac",
>                               .cra_priority = 300,
> -                             .cra_flags = CRYPTO_ALG_TYPE_AHASH,
> +                             .cra_flags = CRYPTO_ALG_TYPE_AHASH | 
> CRYPTO_ALG_ASYNC,
>                               .cra_blocksize = AES_BLOCK_SIZE,
>                               .cra_ctxsize = sizeof(struct tegra_cmac_ctx),
>                               .cra_alignmask = 0,
>                               .cra_module = THIS_MODULE,
>                               .cra_init = tegra_cmac_cra_init,
> 
> base-commit: 1c9982b4961334c1edb0745a04cabd34bc2de675
> -- 
> 2.53.0
> 


Reply via email to