RE: [PATCH 01/13] remoteproc: Re-check state in rproc_shutdown()

From: Peng Fan
Date: Wed Oct 14 2020 - 21:28:47 EST


> 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>