summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Blum <thorsten.blum@linux.dev>2026-03-28 13:20:44 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2026-04-03 03:56:13 +0300
commit3a31b7fda695da81a2e2fe6812af94e8bf61624a (patch)
treeca9dd30ea71d304a2279e9e01518c85f416ac0b7
parentcdadc14359378c0cf02251c86ffbc606f55bfadd (diff)
downloadlinux-3a31b7fda695da81a2e2fe6812af94e8bf61624a.tar.xz
crypto: img-hash - use list_first_entry_or_null to simplify digest
Use list_first_entry_or_null() to simplify img_hash_digest() and remove the now-unused local 'struct img_hash_dev *' variables. Use 'ctx->hdev' when calling img_hash_handle_queue() instead of 'tctx->hdev'. Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/img-hash.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/crypto/img-hash.c b/drivers/crypto/img-hash.c
index 7195c37dd102..f2d00b1d6b24 100644
--- a/drivers/crypto/img-hash.c
+++ b/drivers/crypto/img-hash.c
@@ -629,24 +629,15 @@ static int img_hash_digest(struct ahash_request *req)
struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
struct img_hash_ctx *tctx = crypto_ahash_ctx(tfm);
struct img_hash_request_ctx *ctx = ahash_request_ctx(req);
- struct img_hash_dev *hdev = NULL;
- struct img_hash_dev *tmp;
int err;
spin_lock(&img_hash.lock);
- if (!tctx->hdev) {
- list_for_each_entry(tmp, &img_hash.dev_list, list) {
- hdev = tmp;
- break;
- }
- tctx->hdev = hdev;
-
- } else {
- hdev = tctx->hdev;
- }
-
+ if (!tctx->hdev)
+ tctx->hdev = list_first_entry_or_null(&img_hash.dev_list,
+ struct img_hash_dev, list);
+ ctx->hdev = tctx->hdev;
spin_unlock(&img_hash.lock);
- ctx->hdev = hdev;
+
ctx->flags = 0;
ctx->digsize = crypto_ahash_digestsize(tfm);
@@ -675,7 +666,7 @@ static int img_hash_digest(struct ahash_request *req)
ctx->sgfirst = req->src;
ctx->nents = sg_nents(ctx->sg);
- err = img_hash_handle_queue(tctx->hdev, req);
+ err = img_hash_handle_queue(ctx->hdev, req);
return err;
}