[PATCH 3/3] remoteproc: simplify rproc_crash_handler_work()
From: Mukesh Ojha
Date: Thu Jul 30 2026 - 05:15:29 EST
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 <mukesh.ojha@xxxxxxxxxxxxxxxx>
---
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