diff options
author | Arnd Bergmann <arnd@arndb.de> | 2020-12-04 22:37:35 +0300 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2020-12-05 01:40:52 +0300 |
commit | 9d7b4a40387d0f91512a74caed6654ffa23d5ce4 (patch) | |
tree | ca86e45233f74aca868a792e8ad47004e8125850 /drivers/remoteproc/qcom_sysmon.c | |
parent | c3c21b356505e2f4c528d22903531f7764e18998 (diff) | |
download | linux-9d7b4a40387d0f91512a74caed6654ffa23d5ce4.tar.xz |
remoteproc: sysmon: fix shutdown_acked state
The latest version of sysmon_stop() starts by initializing
the sysmon->shutdown_acked variable, but then overwrites it
with an uninitialized variable later:
drivers/remoteproc/qcom_sysmon.c:551:11: error: variable 'acked' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
else if (sysmon->ept)
^~~~~~~~~~~
drivers/remoteproc/qcom_sysmon.c:554:27: note: uninitialized use occurs here
sysmon->shutdown_acked = acked;
^~~~~
Remove the local 'acked' variable again and set the state directly.
Fixes: 5c212aaf5457 ("remoteproc: sysmon: Expose the shutdown result")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20201204193740.3162065-1-arnd@kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/remoteproc/qcom_sysmon.c')
-rw-r--r-- | drivers/remoteproc/qcom_sysmon.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/remoteproc/qcom_sysmon.c b/drivers/remoteproc/qcom_sysmon.c index d01bc4bda7bf..9fca81492863 100644 --- a/drivers/remoteproc/qcom_sysmon.c +++ b/drivers/remoteproc/qcom_sysmon.c @@ -533,7 +533,6 @@ static void sysmon_stop(struct rproc_subdev *subdev, bool crashed) .subsys_name = sysmon->name, .ssr_event = SSCTL_SSR_EVENT_BEFORE_SHUTDOWN }; - bool acked; sysmon->shutdown_acked = false; @@ -547,11 +546,9 @@ static void sysmon_stop(struct rproc_subdev *subdev, bool crashed) return; if (sysmon->ssctl_version) - acked = ssctl_request_shutdown(sysmon); + sysmon->shutdown_acked = ssctl_request_shutdown(sysmon); else if (sysmon->ept) - acked = sysmon_request_shutdown(sysmon); - - sysmon->shutdown_acked = acked; + sysmon->shutdown_acked = sysmon_request_shutdown(sysmon); } static void sysmon_unprepare(struct rproc_subdev *subdev) |