On 10/30/20 8:57 PM, Mathieu Poirier wrote: > Whether started at probe() time or thereafter from the command > line, a remote processor needs to be shutdown 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@xxxxxxxxxx> > Reviewed-by: Peng Fan <peng.fan@xxxxxxx> Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxx> Thanks, Arnaud > --- > drivers/remoteproc/remoteproc_core.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c > index e55568d1e7e2..f36786b47a4f 100644 > --- a/drivers/remoteproc/remoteproc_core.c > +++ b/drivers/remoteproc/remoteproc_core.c > @@ -2283,10 +2283,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; >