On Sat, 14 Mar 2026 09:55:15 -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 the fix. Looks like CRYPTO_ALG_ASYNC is missing for the hash algorithms in tegra-se-hash.c as well. Would you want to include those in this patch? I can push a separate patch if you suggest. Acked-by: Akhil R <[email protected]> > > 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 Best Regards, Akhil
