crypto: rk3288 - Remove prepare/unprepare request
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 13 Aug 2023 06:54:22 +0000 (14:54 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 18 Aug 2023 09:01:09 +0000 (17:01 +0800)
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/rockchip/rk3288_crypto_ahash.c

index a78ff3d..1519aa0 100644 (file)
@@ -240,14 +240,13 @@ static int rk_hash_prepare(struct crypto_engine *engine, void *breq)
        return 0;
 }
 
-static int rk_hash_unprepare(struct crypto_engine *engine, void *breq)
+static void rk_hash_unprepare(struct crypto_engine *engine, void *breq)
 {
        struct ahash_request *areq = container_of(breq, struct ahash_request, base);
        struct rk_ahash_rctx *rctx = ahash_request_ctx(areq);
        struct rk_crypto_info *rkc = rctx->dev;
 
        dma_unmap_sg(rkc->dev, areq->src, rctx->nrsg, DMA_TO_DEVICE);
-       return 0;
 }
 
 static int rk_hash_run(struct crypto_engine *engine, void *breq)
@@ -259,7 +258,7 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
        struct rk_crypto_tmp *algt = container_of(alg, struct rk_crypto_tmp, alg.hash);
        struct scatterlist *sg = areq->src;
        struct rk_crypto_info *rkc = rctx->dev;
-       int err = 0;
+       int err;
        int i;
        u32 v;
 
@@ -267,6 +266,10 @@ static int rk_hash_run(struct crypto_engine *engine, void *breq)
        if (err)
                return err;
 
+       err = rk_hash_prepare(engine, breq);
+       if (err)
+               goto theend;
+
        rctx->mode = 0;
 
        algt->stat_req++;
@@ -327,6 +330,8 @@ theend:
        crypto_finalize_hash_request(engine, breq, err);
        local_bh_enable();
 
+       rk_hash_unprepare(engine, breq);
+
        return 0;
 }
 
@@ -350,8 +355,6 @@ static int rk_cra_hash_init(struct crypto_tfm *tfm)
                                 crypto_ahash_reqsize(tctx->fallback_tfm));
 
        tctx->enginectx.op.do_one_request = rk_hash_run;
-       tctx->enginectx.op.prepare_request = rk_hash_prepare;
-       tctx->enginectx.op.unprepare_request = rk_hash_unprepare;
 
        return 0;
 }