> 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: <sta...@vger.kernel.org>
> Signed-off-by: Mathieu Poirier <mathieu.poir...@linaro.org>
> ---
>  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....@nxp.com>

Reply via email to