[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB6PR0402MB2760DB90DA376F4BB2DBB9D888020@DB6PR0402MB2760.eurprd04.prod.outlook.com>
Date: Thu, 15 Oct 2020 01:28:40 +0000
From: Peng Fan <peng.fan@....com>
To: Mathieu Poirier <mathieu.poirier@...aro.org>,
"bjorn.andersson@...aro.org" <bjorn.andersson@...aro.org>,
"ohad@...ery.com" <ohad@...ery.com>
CC: "linux-remoteproc@...r.kernel.org" <linux-remoteproc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 01/13] remoteproc: Re-check state in rproc_shutdown()
> 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@...r.kernel.org>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@...aro.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.fan@....com>
Powered by blists - more mailing lists