linux-stable/drivers/remoteproc
Sibi Sankar d3ae96c0e6 remoteproc: qcom: q6v5: Fix a race condition on fatal crash
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>
2018-10-05 23:33:46 -07:00
..
da8xx_remoteproc.c remoteproc/davinci: Use %zx for formating size_t 2018-08-27 17:06:17 -07: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: Rename Hexagon v5 modem driver 2018-09-26 10:11:37 -07:00
keystone_remoteproc.c remoteproc/keystone: explicitly request exclusive reset control 2017-08-27 23:16:22 -07:00
Makefile remoteproc: qcom: Rename Hexagon v5 modem driver 2018-09-26 10:11:37 -07:00
omap_remoteproc.c drivers: remoteproc: constify rproc_ops structures 2017-01-18 10:46:50 -08:00
omap_remoteproc.h remoteproc/omap: add a remoteproc driver for OMAP4 2012-02-08 22:53:47 +02: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 2018-10-05 23:33:46 -07:00
qcom_q6v5.h remoteproc: q6v5: Extract common resource handling 2018-06-18 15:55:57 -07:00
qcom_q6v5_mss.c remoteproc: qcom: q6v5-pil: Add PDC reset for modem on SDM845 SoCs 2018-10-05 11:46:04 -07:00
qcom_q6v5_pas.c remoteproc: qcom: pas: Add QCS404 remoteprocs 2018-09-27 23:32:18 -07: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: qcom_wcnss: Fix circular module dependency 2016-11-14 21:52:19 -08:00
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 2018-10-05 23:04:20 -07:00
remoteproc_virtio.c remoteproc: replace "%p" with "%pK" 2018-07-30 23:24:15 -07:00
st_remoteproc.c remoteproc: st: explicitly request exclusive reset control 2017-08-27 23:18:52 -07:00
st_slim_rproc.c remoteproc: st_slim: replace "%p" with "%pK" 2018-07-30 23:25:09 -07:00
wkup_m3_rproc.c drivers: remoteproc: constify rproc_ops structures 2017-01-18 10:46:50 -08:00