]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/blobdiff - drivers/remoteproc/remoteproc_core.c
remoteproc: fix multiple back-to-back error recoveries
[rpmsg/rpmsg.git] / drivers / remoteproc / remoteproc_core.c
index 30e02198bb302e3e21a3dbd68b64cdfda7c4e717..9e33dbee6e2045c1ed4755f8356ee65de0e62a2c 100644 (file)
@@ -2037,8 +2037,9 @@ void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type)
        dev_err(&rproc->dev, "crash detected in %s: type %s\n",
                rproc->name, rproc_crash_to_string(type));
 
-       /* create a new task to handle the error */
-       schedule_work(&rproc->crash_handler);
+       /* create a new task to handle the error if not scheduled already */
+       if (!work_busy(&rproc->crash_handler))
+               schedule_work(&rproc->crash_handler);
 }
 EXPORT_SYMBOL(rproc_report_crash);