From e77294b62b508b9c551e64f17c2b79055fad3e79 Mon Sep 17 00:00:00 2001 From: Lin Jinhan Date: Fri, 11 Nov 2022 16:25:38 +0800 Subject: [PATCH] crypto: rockchip: fix crush when skcipher fallback alloc failed Change-Id: Ia48f7daac3de6f70896964c73fa87ed090aa2fa6 Signed-off-by: Lin Jinhan --- drivers/crypto/rockchip/rk_crypto_v2_skcipher.c | 7 ++++--- drivers/crypto/rockchip/rk_crypto_v3_skcipher.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c b/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c index 5edef31da8f6..2a4628f9f58a 100644 --- a/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c +++ b/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c @@ -511,10 +511,11 @@ static int rk_aead_init_tfm(struct crypto_aead *tfm) "Load fallback driver %s err: %ld.\n", alg_name, PTR_ERR(ctx->fallback_aead)); ctx->fallback_aead = NULL; + crypto_aead_set_reqsize(tfm, sizeof(struct aead_request)); + } else { + crypto_aead_set_reqsize(tfm, sizeof(struct aead_request) + + crypto_aead_reqsize(ctx->fallback_aead)); } - - crypto_aead_set_reqsize(tfm, sizeof(struct aead_request) + - crypto_aead_reqsize(ctx->fallback_aead)); } return 0; diff --git a/drivers/crypto/rockchip/rk_crypto_v3_skcipher.c b/drivers/crypto/rockchip/rk_crypto_v3_skcipher.c index 9eab01274fc8..26d2b714761c 100644 --- a/drivers/crypto/rockchip/rk_crypto_v3_skcipher.c +++ b/drivers/crypto/rockchip/rk_crypto_v3_skcipher.c @@ -510,10 +510,11 @@ static int rk_aead_init_tfm(struct crypto_aead *tfm) "Load fallback driver %s err: %ld.\n", alg_name, PTR_ERR(ctx->fallback_aead)); ctx->fallback_aead = NULL; + crypto_aead_set_reqsize(tfm, sizeof(struct aead_request)); + } else { + crypto_aead_set_reqsize(tfm, sizeof(struct aead_request) + + crypto_aead_reqsize(ctx->fallback_aead)); } - - crypto_aead_set_reqsize(tfm, sizeof(struct aead_request) + - crypto_aead_reqsize(ctx->fallback_aead)); } return 0;