[PATCH 3/3] remoteproc: simplify rproc_crash_handler_work()

Mukesh Ojha <[email protected]> Thu, 30 Jul 2026 14:24:37 +0530
Newsgroups org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Three consecutive mutex_unlock/goto-out blocks guard against deleting,
RPROC_CRASHED and RPROC_OFFLINE but differ only in their condition.
Collapse them into a single if with OR'd conditions.  No behaviour change.

Signed-off-by: Mukesh Ojha <[email protected]>
---
 drivers/remoteproc/remoteproc_core.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index 9d36e2f06348..41c2d3ebd568 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -1888,19 +1888,9 @@ static void rproc_crash_handler_work(struct work_struct *work)
 
 	mutex_lock(&rproc->lock);
 
-	if (READ_ONCE(rproc->deleting)) {
-		mutex_unlock(&rproc->lock);
-		goto out;
-	}
-
-	if (rproc->state == RPROC_CRASHED) {
-		/* handle only the first crash detected */
-		mutex_unlock(&rproc->lock);
-		goto out;
-	}
-
-	if (rproc->state == RPROC_OFFLINE) {
-		/* Don't recover if the remote processor was stopped */
+	if (READ_ONCE(rproc->deleting) ||
+	    rproc->state == RPROC_CRASHED ||
+	    rproc->state == RPROC_OFFLINE) {
 		mutex_unlock(&rproc->lock);
 		goto out;
 	}
-- 
2.53.0