crypto: sun8i-ce-hash - use API helpers to setup fallback request

Rather than setting up the fallback request by hand, use
ahash_request_set_callback() and ahash_request_set_crypt() API helpers
to properly setup the new request.

Signed-off-by: Ovidiu Panait <ovidiu.panait.oss@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Ovidiu Panait
2025-04-01 22:23:21 +03:00
committed by Herbert Xu
parent 593c76e1aa
commit bfc68ebefb

View File

@@ -92,7 +92,9 @@ int sun8i_ce_hash_init(struct ahash_request *areq)
memset(rctx, 0, sizeof(struct sun8i_ce_hash_reqctx));
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
return crypto_ahash_init(&rctx->fallback_req);
}
@@ -104,7 +106,9 @@ int sun8i_ce_hash_export(struct ahash_request *areq, void *out)
struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
return crypto_ahash_export(&rctx->fallback_req, out);
}
@@ -116,7 +120,9 @@ int sun8i_ce_hash_import(struct ahash_request *areq, const void *in)
struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
return crypto_ahash_import(&rctx->fallback_req, in);
}
@@ -130,9 +136,10 @@ int sun8i_ce_hash_final(struct ahash_request *areq)
sun8i_ce_hash_stat_fb_inc(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags &
CRYPTO_TFM_REQ_MAY_SLEEP;
rctx->fallback_req.result = areq->result;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
ahash_request_set_crypt(&rctx->fallback_req, NULL, areq->result, 0);
return crypto_ahash_final(&rctx->fallback_req);
}
@@ -144,10 +151,10 @@ int sun8i_ce_hash_update(struct ahash_request *areq)
struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags &
CRYPTO_TFM_REQ_MAY_SLEEP;
rctx->fallback_req.nbytes = areq->nbytes;
rctx->fallback_req.src = areq->src;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
ahash_request_set_crypt(&rctx->fallback_req, areq->src, NULL, areq->nbytes);
return crypto_ahash_update(&rctx->fallback_req);
}
@@ -161,12 +168,11 @@ int sun8i_ce_hash_finup(struct ahash_request *areq)
sun8i_ce_hash_stat_fb_inc(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags &
CRYPTO_TFM_REQ_MAY_SLEEP;
rctx->fallback_req.nbytes = areq->nbytes;
rctx->fallback_req.src = areq->src;
rctx->fallback_req.result = areq->result;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
ahash_request_set_crypt(&rctx->fallback_req, areq->src, areq->result,
areq->nbytes);
return crypto_ahash_finup(&rctx->fallback_req);
}
@@ -180,12 +186,11 @@ static int sun8i_ce_hash_digest_fb(struct ahash_request *areq)
sun8i_ce_hash_stat_fb_inc(tfm);
ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm);
rctx->fallback_req.base.flags = areq->base.flags &
CRYPTO_TFM_REQ_MAY_SLEEP;
rctx->fallback_req.nbytes = areq->nbytes;
rctx->fallback_req.src = areq->src;
rctx->fallback_req.result = areq->result;
ahash_request_set_callback(&rctx->fallback_req,
areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP,
areq->base.complete, areq->base.data);
ahash_request_set_crypt(&rctx->fallback_req, areq->src, areq->result,
areq->nbytes);
return crypto_ahash_digest(&rctx->fallback_req);
}