[PATCH] crypto: starfive - use list_first_entry_or_null to simplify cryp_find_dev

From: Thorsten Blum

Date: Mon Apr 27 2026 - 17:35:42 EST


Use list_first_entry_or_null() to simplify starfive_cryp_find_dev() and
remove the now-unused local variable 'struct starfive_cryp_dev *tmp'.

Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxx>
---
drivers/crypto/starfive/jh7110-cryp.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/crypto/starfive/jh7110-cryp.c b/drivers/crypto/starfive/jh7110-cryp.c
index 42114e9364f0..e19cd7945968 100644
--- a/drivers/crypto/starfive/jh7110-cryp.c
+++ b/drivers/crypto/starfive/jh7110-cryp.c
@@ -36,19 +36,14 @@ static struct starfive_dev_list dev_list = {

struct starfive_cryp_dev *starfive_cryp_find_dev(struct starfive_cryp_ctx *ctx)
{
- struct starfive_cryp_dev *cryp = NULL, *tmp;
+ struct starfive_cryp_dev *cryp;

spin_lock_bh(&dev_list.lock);
- if (!ctx->cryp) {
- list_for_each_entry(tmp, &dev_list.dev_list, list) {
- cryp = tmp;
- break;
- }
- ctx->cryp = cryp;
- } else {
- cryp = ctx->cryp;
- }
-
+ if (!ctx->cryp)
+ ctx->cryp = list_first_entry_or_null(&dev_list.dev_list,
+ struct starfive_cryp_dev,
+ list);
+ cryp = ctx->cryp;
spin_unlock_bh(&dev_list.lock);

return cryp;