> Subject: [PATCH 01/13] remoteproc: Re-check state in rproc_shutdown() > > The state of the remote processor may have changed between the time a call > to rproc_shutdown() was made and the time it is executed. To avoid moving > forward with an operation that may have been cancelled, recheck while > holding the mutex. > > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> > --- > drivers/remoteproc/remoteproc_core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/remoteproc/remoteproc_core.c > b/drivers/remoteproc/remoteproc_core.c > index 7f90eeea67e2..fb2632cbd2df 100644 > --- a/drivers/remoteproc/remoteproc_core.c > +++ b/drivers/remoteproc/remoteproc_core.c > @@ -1834,6 +1834,9 @@ void rproc_shutdown(struct rproc *rproc) > return; > } > > + if (rproc->state != RPROC_RUNNING) > + goto out; > + > /* if the remote proc is still needed, bail out */ > if (!atomic_dec_and_test(&rproc->power)) > goto out; > -- Reviewed-by: Peng Fan <peng.fan@xxxxxxx>