linux-uconsole/drivers/remoteproc
Sibi Sankar 59e5269c69 remoteproc: qcom: q6v5: Fix a race condition on fatal crash
[ Upstream commit d3ae96c0e6 ]

Currently with GLINK_SSR enabled each fatal crash results in servicing
a crash from wdog as well. This is due to a race that occurs in setting
the running flag in the shutdown path. Fix this by moving the running
flag to the end of fatal interrupt handler.

Crash Logs:
qcom-q6v5-pil 4080000.remoteproc: fatal error without message
remoteproc remoteproc0: crash detected in 4080000.remoteproc: type fatal
	error
remoteproc remoteproc0: handling crash #1 in 4080000.remoteproc
remoteproc remoteproc0: recovering 4080000.remoteproc
qcom-q6v5-pil 4080000.remoteproc: watchdog without message
remoteproc remoteproc0: crash detected in 4080000.remoteproc: type watchdog
remoteproc:glink-edge: intent request timed out
qcom_glink_ssr remoteproc:glink-edge.glink_ssr.-1.-1: failed to send
	cleanup message
qcom_glink_ssr remoteproc:glink-edge.glink_ssr.-1.-1: timeout waiting
	for cleanup done message
qcom-q6v5-pil 4080000.remoteproc: timed out on wait
qcom-q6v5-pil 4080000.remoteproc: port failed halt
remoteproc remoteproc0: stopped remote processor 4080000.remoteproc
qcom-q6v5-pil 4080000.remoteproc: MBA booted, loading mpss
remoteproc remoteproc0: remote processor 4080000.remoteproc is now up
remoteproc remoteproc0: handling crash #2 in 4080000.remoteproc
remoteproc remoteproc0: recovering 4080000.remoteproc
qcom-q6v5-pil 4080000.remoteproc: port failed halt
remoteproc remoteproc0: stopped remote processor 4080000.remoteproc
qcom-q6v5-pil 4080000.remoteproc: MBA booted, loading mpss
remoteproc remoteproc0: remote processor 4080000.remoteproc is now up

Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-24 08:20:29 +01:00
..
da8xx_remoteproc.c remoteproc/davinci: Use %zx for formating size_t 2019-11-20 18:45:25 +01:00
imx_rproc.c remoteproc: imx_rproc: Slightly simplify code in 'imx_rproc_probe()' 2018-03-18 15:43:46 -07:00
Kconfig remoteproc: qcom: fix Q6V5_WCSS dependencies 2018-07-30 21:17:26 -07:00
keystone_remoteproc.c
Makefile remoteproc: qcom: Introduce Hexagon V5 based WCSS driver 2018-06-18 15:57:58 -07:00
omap_remoteproc.c
omap_remoteproc.h
qcom_adsp_pil.c remoteproc: qcom: adsp: Use common q6v5 helpers 2018-06-18 15:56:02 -07:00
qcom_common.c remoteproc: rename subdev probe and remove functions 2018-06-26 14:09:12 -07:00
qcom_common.h remoteproc: qcom: Introduce sysmon 2018-02-12 16:57:22 -08:00
qcom_q6v5.c remoteproc: qcom: q6v5: Fix a race condition on fatal crash 2019-11-24 08:20:29 +01:00
qcom_q6v5.h remoteproc: q6v5: Extract common resource handling 2018-06-18 15:55:57 -07:00
qcom_q6v5_pil.c remoteproc: qcom: q6v5-mss: add SCM probe dependency 2019-09-16 08:21:48 +02:00
qcom_q6v5_wcss.c remoteproc: qcom: Introduce Hexagon V5 based WCSS driver 2018-06-18 15:57:58 -07:00
qcom_sysmon.c remoteproc: Make client initialize ops in rproc_subdev 2018-06-26 13:53:07 -07:00
qcom_wcnss.c remoteproc: qcom: Introduce sysmon 2018-02-12 16:57:22 -08:00
qcom_wcnss.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qcom_wcnss_iris.c
remoteproc_core.c remoteproc: replace "%p" with "%pK" 2018-07-30 23:24:15 -07:00
remoteproc_debugfs.c remoteproc: replace "%p" with "%pK" 2018-07-30 23:24:15 -07:00
remoteproc_elf_loader.c remoteproc: Move resource table load logic to find 2018-01-15 09:29:53 -08:00
remoteproc_internal.h remoteproc: Rename "load_rsc_table" to "parse_fw" 2018-02-12 11:05:30 -08:00
remoteproc_sysfs.c remoteproc: Check for NULL firmwares in sysfs interface 2019-11-24 08:20:29 +01:00
remoteproc_virtio.c remoteproc: replace "%p" with "%pK" 2018-07-30 23:24:15 -07:00
st_remoteproc.c
st_slim_rproc.c remoteproc: st_slim: replace "%p" with "%pK" 2018-07-30 23:25:09 -07:00
wkup_m3_rproc.c