From 4596f91c3d60869352a77d713886a784c3bf011f Mon Sep 17 00:00:00 2001 From: Lin Jinhan Date: Thu, 21 Jul 2022 09:31:54 +0800 Subject: [PATCH] crypto: rockchip: add async_req NULL check Change-Id: Ie27402f25e0c0c8440f5e299694d91719514bc32 Signed-off-by: Lin Jinhan --- drivers/crypto/rockchip/rk_crypto_core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/crypto/rockchip/rk_crypto_core.c b/drivers/crypto/rockchip/rk_crypto_core.c index f1dddc782ae4..f69b9083c6d4 100644 --- a/drivers/crypto/rockchip/rk_crypto_core.c +++ b/drivers/crypto/rockchip/rk_crypto_core.c @@ -353,6 +353,8 @@ static void rk_complete_op(struct rk_crypto_dev *rk_dev, int err) alg_ctx->ops.complete(rk_dev->async_req, err); + rk_dev->async_req = NULL; + tasklet_schedule(&rk_dev->queue_task); } @@ -388,6 +390,11 @@ static void rk_crypto_queue_task_cb(unsigned long data) struct crypto_async_request *async_req, *backlog; unsigned long flags; + if (rk_dev->async_req) { + dev_err(rk_dev->dev, "%s: Unexpected crypto paths.\n", __func__); + return; + } + rk_dev->err = 0; spin_lock_irqsave(&rk_dev->lock, flags); backlog = crypto_get_backlog(&rk_dev->queue);