linux-stable/drivers/remoteproc
Joakim Zhang 30532a4fd0 remoteproc: virtio: Fix wdg cannot recovery remote processor
[ Upstream commit b327c72753 ]

Recovery remote processor failed when wdg irq received:
[    0.842574] remoteproc remoteproc0: crash detected in cix-dsp-rproc: type watchdog
[    0.842750] remoteproc remoteproc0: handling crash #1 in cix-dsp-rproc
[    0.842824] remoteproc remoteproc0: recovering cix-dsp-rproc
[    0.843342] remoteproc remoteproc0: stopped remote processor cix-dsp-rproc
[    0.847901] rproc-virtio rproc-virtio.0.auto: Failed to associate buffer
[    0.847979] remoteproc remoteproc0: failed to probe subdevices for cix-dsp-rproc: -16

The reason is that dma coherent mem would not be released when
recovering the remote processor, due to rproc_virtio_remove()
would not be called, where the mem released. It will fail when
it try to allocate and associate buffer again.

Releasing reserved memory from rproc_virtio_dev_release(), instead of
rproc_virtio_remove().

Fixes: 1d7b61c06d ("remoteproc: virtio: Create platform device for the remoteproc_virtio")
Signed-off-by: Joakim Zhang <joakim.zhang@cixtech.com>
Acked-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20231217053659.3245745-1-joakim.zhang@cixtech.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-03 15:32:01 +02:00
..
Kconfig remoteproc: stm32: use correct format strings on 64-bit 2023-06-22 09:54:44 +02:00
Makefile drivers: remoteproc: Add Xilinx r5 remoteproc driver 2022-11-25 09:12:05 -07:00
da8xx_remoteproc.c remoteproc: da8xx: Convert to platform remove callback returning void 2023-05-09 11:45:22 -06:00
imx_dsp_rproc.c remoteproc: imx_dsp_rproc: Add mandatory find_loaded_rsc_table op 2023-11-20 13:58:49 -07:00
imx_rproc.c remoteproc: imx_rproc: Switch iMX8MN/MP from SMCCC to MMIO 2023-07-27 10:44:17 -06:00
imx_rproc.h remoteproc: imx_rproc: Switch iMX8MN/MP from SMCCC to MMIO 2023-07-27 10:44:17 -06:00
ingenic_rproc.c remoteproc: ingenic: Request IRQ disabled 2021-12-06 10:17:44 -07:00
keystone_remoteproc.c remoteproc: keystone: Convert to platform remove callback returning void 2023-05-09 11:48:38 -06:00
meson_mx_ao_arc.c remoteproc: meson_mx_ao_arc: Convert to platform remove callback returning void 2023-05-09 13:17:22 -06:00
mtk_common.h remoteproc: mediatek: Handle MT8195 SCP core 1 watchdog timeout 2023-09-13 11:46:16 -06:00
mtk_scp.c remoteproc: mediatek: Refactor single core check and fix retrocompatibility 2023-09-21 06:43:21 -06:00
mtk_scp_ipi.c remoteproc: mediatek: Extract SCP common registers 2023-09-13 11:44:17 -06:00
omap_remoteproc.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
omap_remoteproc.h
pru_rproc.c remoteproc: pru: add support for configuring GPMUX based on client setup 2023-08-21 15:19:28 -06:00
pru_rproc.h remoteproc: pru: Add support for PRU specific interrupt configuration 2020-12-10 10:56:01 -06:00
qcom_common.c remoteproc: qcom: Expand MD_* as MINIDUMP_* 2023-07-15 13:26:52 -07:00
qcom_common.h remoteproc updates for v6.3 2023-02-26 12:18:36 -08:00
qcom_pil_info.c remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided 2021-12-13 16:58:05 -06:00
qcom_pil_info.h
qcom_q6v5.c soc: qcom: aoss: Tidy up qmp_send() callers 2023-08-13 19:27:32 -07:00
qcom_q6v5.h remoteproc: qcom: q6v5: Add interconnect path proxy vote 2022-03-11 14:22:03 -06:00
qcom_q6v5_adsp.c remoteproc: qcom: Use of_reserved_mem_lookup() 2023-07-15 12:39:48 -07:00
qcom_q6v5_mss.c remoteproc: qcom: q6v5-mss: Remove PNoC clock from 8996 MSS 2023-09-20 11:25:14 -07:00
qcom_q6v5_pas.c remoteproc: qcom_q6v5_pas: Add SC7280 ADSP, CDSP & WPSS 2023-12-17 10:06:32 -08:00
qcom_q6v5_wcss.c remoteproc: qcom: q6v5: use devm_platform_ioremap_resource_byname() 2023-07-15 13:09:35 -07:00
qcom_sysmon.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
qcom_wcnss.c remoteproc: qcom: wcnss: use devm_platform_ioremap_resource_byname() 2023-07-15 13:10:34 -07:00
qcom_wcnss.h remoteproc: qcom: wcnss: remove unused qcom_iris_driver declaration 2022-12-28 09:50:07 -06:00
qcom_wcnss_iris.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
rcar_rproc.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
remoteproc_cdev.c remoteproc: core: Move state checking to remoteproc_core 2022-04-14 11:13:33 -06:00
remoteproc_core.c remoteproc: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
remoteproc_coredump.c remoteproc: core: Export the rproc coredump APIs 2023-07-15 12:56:48 -07:00
remoteproc_debugfs.c remoteproc: Don't bother checking the return value of debugfs_create* 2022-04-11 10:04:40 -06:00
remoteproc_elf_helpers.h remoteproc: fix an typo in fw_elf_get_class code comments 2021-07-28 14:57:30 -05:00
remoteproc_elf_loader.c ELF: fix all "Elf" typos 2023-04-08 13:45:37 -07:00
remoteproc_internal.h remoteproc: core: Export the rproc coredump APIs 2023-07-15 12:56:48 -07:00
remoteproc_sysfs.c remoteproc: core: Move state checking to remoteproc_core 2022-04-14 11:13:33 -06:00
remoteproc_virtio.c remoteproc: virtio: Fix wdg cannot recovery remote processor 2024-04-03 15:32:01 +02:00
st_remoteproc.c remoteproc: st: Fix sometimes uninitialized ret in st_rproc_probe() 2023-10-16 11:24:34 -06:00
st_slim_rproc.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
stm32_rproc.c remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef 2024-03-26 18:17:28 -04:00
ti_k3_dsp_remoteproc.c remoteproc: k3-dsp: Convert to platform remove callback returning void 2023-11-30 09:41:44 -07:00
ti_k3_r5_remoteproc.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
ti_sci_proc.h
wkup_m3_rproc.c remoteproc: Explicitly include correct DT includes 2023-07-15 10:35:50 -07:00
xlnx_r5_remoteproc.c remoteproc: zynqmp: Change tcm address translation method 2023-09-29 10:29:52 -06:00