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: [v2 PATCH 7/36] crypto: omap - Remove prepare/unprepare request
Date: Sun, 13 Aug 2023 14:54:19 +0800 [thread overview]
Message-ID: <E1qV4zT-002bkH-KB@formenos.hmeau.com> (raw)
In-Reply-To: ZNh94a7YYnvx0l8C@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>
---
drivers/crypto/omap-aes-gcm.c | 14 +++++++-------
drivers/crypto/omap-aes.c | 19 ++++---------------
drivers/crypto/omap-des.c | 19 ++++---------------
drivers/crypto/omap-sham.c | 6 ++++--
4 files changed, 19 insertions(+), 39 deletions(-)
diff --git a/drivers/crypto/omap-aes-gcm.c b/drivers/crypto/omap-aes-gcm.c
index 9f937bdc53a7..d02363e976e7 100644
--- a/drivers/crypto/omap-aes-gcm.c
+++ b/drivers/crypto/omap-aes-gcm.c
@@ -212,12 +212,10 @@ static int omap_aes_gcm_handle_queue(struct omap_aes_dev *dd,
return 0;
}
-static int omap_aes_gcm_prepare_req(struct crypto_engine *engine, void *areq)
+static int omap_aes_gcm_prepare_req(struct aead_request *req,
+ struct omap_aes_dev *dd)
{
- struct aead_request *req = container_of(areq, struct aead_request,
- base);
struct omap_aes_reqctx *rctx = aead_request_ctx(req);
- struct omap_aes_dev *dd = rctx->dd;
struct omap_aes_gcm_ctx *ctx = crypto_aead_ctx(crypto_aead_reqtfm(req));
int err;
@@ -362,11 +360,15 @@ static int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq)
base);
struct omap_aes_reqctx *rctx = aead_request_ctx(req);
struct omap_aes_dev *dd = rctx->dd;
- int ret = 0;
+ int ret;
if (!dd)
return -ENODEV;
+ ret = omap_aes_gcm_prepare_req(req, dd);
+ if (ret)
+ return ret;
+
if (dd->in_sg_len)
ret = omap_aes_crypt_dma_start(dd);
else
@@ -379,8 +381,6 @@ int omap_aes_gcm_cra_init(struct crypto_aead *tfm)
{
struct omap_aes_ctx *ctx = crypto_aead_ctx(tfm);
- ctx->enginectx.op.prepare_request = omap_aes_gcm_prepare_req;
- ctx->enginectx.op.unprepare_request = NULL;
ctx->enginectx.op.do_one_request = omap_aes_gcm_crypt_req;
crypto_aead_set_reqsize(tfm, sizeof(struct omap_aes_reqctx));
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 67a99c760bc4..d6fb8676f6cc 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -426,20 +426,15 @@ static int omap_aes_handle_queue(struct omap_aes_dev *dd,
return 0;
}
-static int omap_aes_prepare_req(struct crypto_engine *engine,
- void *areq)
+static int omap_aes_prepare_req(struct skcipher_request *req,
+ struct omap_aes_dev *dd)
{
- struct skcipher_request *req = container_of(areq, struct skcipher_request, base);
struct omap_aes_ctx *ctx = crypto_skcipher_ctx(
crypto_skcipher_reqtfm(req));
struct omap_aes_reqctx *rctx = skcipher_request_ctx(req);
- struct omap_aes_dev *dd = rctx->dd;
int ret;
u16 flags;
- if (!dd)
- return -ENODEV;
-
/* assign new request to device */
dd->req = req;
dd->total = req->cryptlen;
@@ -491,7 +486,8 @@ static int omap_aes_crypt_req(struct crypto_engine *engine,
if (!dd)
return -ENODEV;
- return omap_aes_crypt_dma_start(dd);
+ return omap_aes_prepare_req(req, dd) ?:
+ omap_aes_crypt_dma_start(dd);
}
static void omap_aes_copy_ivout(struct omap_aes_dev *dd, u8 *ivbuf)
@@ -629,11 +625,6 @@ static int omap_aes_ctr_decrypt(struct skcipher_request *req)
return omap_aes_crypt(req, FLAGS_CTR);
}
-static int omap_aes_prepare_req(struct crypto_engine *engine,
- void *req);
-static int omap_aes_crypt_req(struct crypto_engine *engine,
- void *req);
-
static int omap_aes_init_tfm(struct crypto_skcipher *tfm)
{
const char *name = crypto_tfm_alg_name(&tfm->base);
@@ -649,8 +640,6 @@ static int omap_aes_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_aes_reqctx) +
crypto_skcipher_reqsize(blk));
- ctx->enginectx.op.prepare_request = omap_aes_prepare_req;
- ctx->enginectx.op.unprepare_request = NULL;
ctx->enginectx.op.do_one_request = omap_aes_crypt_req;
return 0;
diff --git a/drivers/crypto/omap-des.c b/drivers/crypto/omap-des.c
index 371a51094e34..29a3b4c9edaf 100644
--- a/drivers/crypto/omap-des.c
+++ b/drivers/crypto/omap-des.c
@@ -522,20 +522,15 @@ static int omap_des_handle_queue(struct omap_des_dev *dd,
return 0;
}
-static int omap_des_prepare_req(struct crypto_engine *engine,
- void *areq)
+static int omap_des_prepare_req(struct skcipher_request *req,
+ struct omap_des_dev *dd)
{
- struct skcipher_request *req = container_of(areq, struct skcipher_request, base);
struct omap_des_ctx *ctx = crypto_skcipher_ctx(
crypto_skcipher_reqtfm(req));
- struct omap_des_dev *dd = omap_des_find_dev(ctx);
struct omap_des_reqctx *rctx;
int ret;
u16 flags;
- if (!dd)
- return -ENODEV;
-
/* assign new request to device */
dd->req = req;
dd->total = req->cryptlen;
@@ -590,7 +585,8 @@ static int omap_des_crypt_req(struct crypto_engine *engine,
if (!dd)
return -ENODEV;
- return omap_des_crypt_dma_start(dd);
+ return omap_des_prepare_req(req, dd) ?:
+ omap_des_crypt_dma_start(dd);
}
static void omap_des_done_task(unsigned long data)
@@ -709,11 +705,6 @@ static int omap_des_cbc_decrypt(struct skcipher_request *req)
return omap_des_crypt(req, FLAGS_CBC);
}
-static int omap_des_prepare_req(struct crypto_engine *engine,
- void *areq);
-static int omap_des_crypt_req(struct crypto_engine *engine,
- void *areq);
-
static int omap_des_init_tfm(struct crypto_skcipher *tfm)
{
struct omap_des_ctx *ctx = crypto_skcipher_ctx(tfm);
@@ -722,8 +713,6 @@ static int omap_des_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_des_reqctx));
- ctx->enginectx.op.prepare_request = omap_des_prepare_req;
- ctx->enginectx.op.unprepare_request = NULL;
ctx->enginectx.op.do_one_request = omap_des_crypt_req;
return 0;
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index cbeda59c6b19..2ef92301969f 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -1074,6 +1074,10 @@ static int omap_sham_hash_one_req(struct crypto_engine *engine, void *areq)
dev_dbg(dd->dev, "hash-one: op: %u, total: %u, digcnt: %zd, final: %d",
ctx->op, ctx->total, ctx->digcnt, final);
+ err = omap_sham_prepare_request(engine, areq);
+ if (err)
+ return err;
+
err = pm_runtime_resume_and_get(dd->dev);
if (err < 0) {
dev_err(dd->dev, "failed to get sync: %d\n", err);
@@ -1350,8 +1354,6 @@ static int omap_sham_cra_init_alg(struct crypto_tfm *tfm, const char *alg_base)
}
tctx->enginectx.op.do_one_request = omap_sham_hash_one_req;
- tctx->enginectx.op.prepare_request = omap_sham_prepare_request;
- tctx->enginectx.op.unprepare_request = NULL;
return 0;
}
next prev parent reply other threads:[~2023-08-13 6:54 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 ` [PATCH 13/36] crypto: engine " Herbert Xu
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 ` Herbert Xu [this message]
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=E1qV4zT-002bkH-KB@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).