remoteproc: Remove useless check in rproc_del()
authorMathieu Poirier <mathieu.poirier@linaro.org>
Fri, 12 Mar 2021 16:24:37 +0000 (09:24 -0700)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 18 Mar 2021 12:54:51 +0000 (07:54 -0500)
Whether started at probe() time or thereafter from the command
line, a remote processor needs to be shut down before the final
cleanup phases can happen.  Otherwise the system may be left in
an unpredictable state where the remote processor is expecting
the remoteproc core to be providing services when in fact it
no longer exist.

Invariably calling rproc_shutdown() is fine since it will return
immediately if the remote processor has already been switched
off.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Link: https://lore.kernel.org/r/20210312162453.1234145-2-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/remoteproc_core.c

index 5071cdbfc926ad4792445f496e0666f7456650e4..4c2e678732f5c1fb4e1327c4d379d40968e442f4 100644 (file)
@@ -2353,10 +2353,8 @@ int rproc_del(struct rproc *rproc)
        if (!rproc)
                return -EINVAL;
 
-       /* if rproc is marked always-on, rproc_add() booted it */
        /* TODO: make sure this works with rproc->power > 1 */
-       if (rproc->auto_boot)
-               rproc_shutdown(rproc);
+       rproc_shutdown(rproc);
 
        mutex_lock(&rproc->lock);
        rproc->state = RPROC_DELETED;