All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Herbert Xu" <herbert@gondor.apana.org.au>
To: Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
	Gaurav Jain <gaurav.jain@nxp.com>
Subject: [PATCH 13/36] crypto: engine - Remove prepare/unprepare request
Date: Fri, 11 Aug 2023 17:30:05 +0800	[thread overview]
Message-ID: <E1qUOT7-0020cX-3n@formenos.hmeau.com> (raw)
In-Reply-To: ZNX/BwEkV3SDpsAS@gondor.apana.org.au

The callbacks for prepare and unprepare request in crypto_engine
is superfluous.  They can be done directly from do_one_request.

Move the code into do_one_request and remove the unused callbacks.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---

 crypto/crypto_engine.c  |   42 +-----------------------------------------
 include/crypto/engine.h |    6 ------
 2 files changed, 1 insertion(+), 47 deletions(-)

diff --git a/crypto/crypto_engine.c b/crypto/crypto_engine.c
index 74fcc0897041..17f7955500a0 100644
--- a/crypto/crypto_engine.c
+++ b/crypto/crypto_engine.c
@@ -26,9 +26,6 @@ static void crypto_finalize_request(struct crypto_engine *engine,
 				    struct crypto_async_request *req, int err)
 {
 	unsigned long flags;
-	bool finalize_req = false;
-	int ret;
-	struct crypto_engine_ctx *enginectx;
 
 	/*
 	 * If hardware cannot enqueue more requests
@@ -38,21 +35,11 @@ static void crypto_finalize_request(struct crypto_engine *engine,
 	if (!engine->retry_support) {
 		spin_lock_irqsave(&engine->queue_lock, flags);
 		if (engine->cur_req == req) {
-			finalize_req = true;
 			engine->cur_req = NULL;
 		}
 		spin_unlock_irqrestore(&engine->queue_lock, flags);
 	}
 
-	if (finalize_req || engine->retry_support) {
-		enginectx = crypto_tfm_ctx(req->tfm);
-		if (enginectx->op.prepare_request &&
-		    enginectx->op.unprepare_request) {
-			ret = enginectx->op.unprepare_request(engine, req);
-			if (ret)
-				dev_err(engine->dev, "failed to unprepare request\n");
-		}
-	}
 	lockdep_assert_in_softirq();
 	crypto_request_complete(req, err);
 
@@ -141,20 +128,12 @@ static void crypto_pump_requests(struct crypto_engine *engine,
 		ret = engine->prepare_crypt_hardware(engine);
 		if (ret) {
 			dev_err(engine->dev, "failed to prepare crypt hardware\n");
-			goto req_err_2;
+			goto req_err_1;
 		}
 	}
 
 	enginectx = crypto_tfm_ctx(async_req->tfm);
 
-	if (enginectx->op.prepare_request) {
-		ret = enginectx->op.prepare_request(engine, async_req);
-		if (ret) {
-			dev_err(engine->dev, "failed to prepare request: %d\n",
-				ret);
-			goto req_err_2;
-		}
-	}
 	if (!enginectx->op.do_one_request) {
 		dev_err(engine->dev, "failed to do request\n");
 		ret = -EINVAL;
@@ -177,18 +156,6 @@ static void crypto_pump_requests(struct crypto_engine *engine,
 				ret);
 			goto req_err_1;
 		}
-		/*
-		 * If retry mechanism is supported,
-		 * unprepare current request and
-		 * enqueue it back into crypto-engine queue.
-		 */
-		if (enginectx->op.unprepare_request) {
-			ret = enginectx->op.unprepare_request(engine,
-							      async_req);
-			if (ret)
-				dev_err(engine->dev,
-					"failed to unprepare request\n");
-		}
 		spin_lock_irqsave(&engine->queue_lock, flags);
 		/*
 		 * If hardware was unable to execute request, enqueue it
@@ -204,13 +171,6 @@ static void crypto_pump_requests(struct crypto_engine *engine,
 	goto retry;
 
 req_err_1:
-	if (enginectx->op.unprepare_request) {
-		ret = enginectx->op.unprepare_request(engine, async_req);
-		if (ret)
-			dev_err(engine->dev, "failed to unprepare request\n");
-	}
-
-req_err_2:
 	crypto_request_complete(async_req, ret);
 
 retry:
diff --git a/include/crypto/engine.h b/include/crypto/engine.h
index 2038764b30c2..1b02f69e0a79 100644
--- a/include/crypto/engine.h
+++ b/include/crypto/engine.h
@@ -78,15 +78,9 @@ struct crypto_engine {
 
 /*
  * struct crypto_engine_op - crypto hardware engine operations
- * @prepare_request: do some preparation if needed before handling the current request
- * @unprepare_request: undo any work done by prepare_request()
  * @do_one_request: do encryption for current request
  */
 struct crypto_engine_op {
-	int (*prepare_request)(struct crypto_engine *engine,
-			       void *areq);
-	int (*unprepare_request)(struct crypto_engine *engine,
-				 void *areq);
 	int (*do_one_request)(struct crypto_engine *engine,
 			      void *areq);
 };

  parent reply	other threads:[~2023-08-11  9:30 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-11  9:27 [PATCH 0/36] Move crypto_engine callback into algorithm object Herbert Xu
2023-08-11  9:29 ` [PATCH 1/36] crypto: sun8i-ce - Remove prepare/unprepare request Herbert Xu
2023-08-11  9:29 ` [PATCH 2/36] crypto: sun8i-ss " Herbert Xu
2023-08-11  9:29 ` [PATCH 3/36] crypto: amlogic " Herbert Xu
2023-08-11  9:29 ` [PATCH 4/36] crypto: aspeed " Herbert Xu
2023-08-11  9:29 ` [PATCH 5/36] crypto: sl3516 " Herbert Xu
2023-08-11  9:29 ` [PATCH 6/36] crypto: keembay " Herbert Xu
2023-08-11  9:29 ` [PATCH 7/36] crypto: omap " Herbert Xu
2023-08-11  9:29 ` [PATCH 8/36] crypto: rk3288 " Herbert Xu
2023-08-11  9:29 ` [PATCH 9/36] crypto: jh1100 " Herbert Xu
2023-08-11  9:29 ` [PATCH 10/36] crypto: stm32 " Herbert Xu
2023-08-11  9:30 ` [PATCH 11/36] crypto: virtio " Herbert Xu
2023-08-11  9:30 ` [PATCH 12/36] crypto: zynqmp " Herbert Xu
2023-08-11  9:30 ` Herbert Xu [this message]
2023-08-11  9:30 ` [PATCH 14/36] crypto: jh7110 - Include crypto/hash.h in header file Herbert Xu
2023-08-11  9:30 ` [PATCH 15/36] crypto: engine - Move crypto inclusions out of " Herbert Xu
2023-08-11  9:30 ` [PATCH 16/36] crypto: jh7110 - Include scatterwalk.h for struct scatter_walk Herbert Xu
2023-08-11  9:30 ` [PATCH 17/36] crypto: engine - Create internal/engine.h Herbert Xu
2023-08-11  9:30 ` [PATCH 18/36] crypto: omap - Include internal/engine.h Herbert Xu
2023-08-11  9:30 ` [PATCH 19/36] crypto: caam " Herbert Xu
2023-08-11  9:30 ` [PATCH 20/36] crypto: engine - Move struct crypto_engine into internal/engine.h Herbert Xu
2023-08-11  9:30 ` [PATCH 21/36] crypto: engine - Move crypto_engine_ops from request into crypto_alg Herbert Xu
2023-08-11  9:30 ` [PATCH 22/36] crypto: sun8i-ce - Use new crypto_engine_op interface Herbert Xu
2023-08-12 11:29   ` kernel test robot
2023-08-11  9:30 ` [PATCH 23/36] crypto: sun8i-ss " Herbert Xu
2023-08-11  9:30 ` [PATCH 24/36] crypto: amlogic " Herbert Xu
2023-08-11  9:30 ` [PATCH 25/36] crypto: aspeed " Herbert Xu
2023-08-11  9:30 ` [PATCH 26/36] crypto: aspeed - Remove non-standard sha512 algorithms Herbert Xu
2023-08-11  9:30 ` [PATCH 27/36] crypto: caam - Use new crypto_engine_op interface Herbert Xu
2023-08-11  9:30 ` [PATCH 28/36] crypto: sl3516 " Herbert Xu
2023-08-11  9:30 ` [PATCH 29/36] crypto: keembay " Herbert Xu
2023-08-11  9:30 ` [PATCH 30/36] crypto: omap " Herbert Xu
2023-08-11  9:30 ` [PATCH 31/36] crypto: rk3288 " Herbert Xu
2023-08-11  9:30 ` [PATCH 32/36] crypto: jh7110 " Herbert Xu
2023-08-11  9:30 ` [PATCH 33/36] crypto: stm32 " Herbert Xu
2023-08-11  9:30 ` [PATCH 34/36] crypto: virtio " Herbert Xu
2023-08-11  9:30 ` [PATCH 35/36] crypto: zynqmp " Herbert Xu
2023-08-11  9:30 ` [PATCH 36/36] crypto: engine - Remove crypto_engine_ctx Herbert Xu
2023-08-13  6:53 ` [v2 PATCH 0/36] Move crypto_engine callback into algorithm object Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 1/36] crypto: sun8i-ce - Remove prepare/unprepare request Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 2/36] crypto: sun8i-ss " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 3/36] crypto: amlogic " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 4/36] crypto: aspeed " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 5/36] crypto: sl3516 " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 6/36] crypto: keembay " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 7/36] crypto: omap " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 8/36] crypto: rk3288 " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 9/36] crypto: jh1100 " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 10/36] crypto: stm32 " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 11/36] crypto: virtio " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 12/36] crypto: zynqmp " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 13/36] crypto: engine " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 14/36] crypto: jh7110 - Include crypto/hash.h in header file Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 15/36] crypto: engine - Move crypto inclusions out of " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 16/36] crypto: jh7110 - Include scatterwalk.h for struct scatter_walk Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 17/36] crypto: engine - Create internal/engine.h Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 18/36] crypto: omap - Include internal/engine.h Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 19/36] crypto: caam " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 20/36] crypto: engine - Move struct crypto_engine into internal/engine.h Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 21/36] crypto: engine - Move crypto_engine_ops from request into crypto_alg Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 22/36] crypto: sun8i-ce - Use new crypto_engine_op interface Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 23/36] crypto: sun8i-ss " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 24/36] crypto: amlogic " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 25/36] crypto: aspeed " Herbert Xu
2023-08-13  6:54   ` [v2 PATCH 26/36] crypto: aspeed - Remove non-standard sha512 algorithms Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 27/36] crypto: caam - Use new crypto_engine_op interface Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 28/36] crypto: sl3516 " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 29/36] crypto: keembay " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 30/36] crypto: omap " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 31/36] crypto: rk3288 " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 32/36] crypto: jh7110 " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 33/36] crypto: stm32 " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 34/36] crypto: virtio " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 35/36] crypto: zynqmp " Herbert Xu
2023-08-13  6:55   ` [v2 PATCH 36/36] crypto: engine - Remove crypto_engine_ctx Herbert Xu
2023-08-22  9:47   ` [EXT] [v2 PATCH 0/36] Move crypto_engine callback into algorithm object Gaurav Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1qUOT7-0020cX-3n@formenos.hmeau.com \
    --to=herbert@gondor.apana.org.au \
    --cc=gaurav.jain@nxp.com \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.