linux-stable/drivers/remoteproc
Joakim Zhang 9875deeefe 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:19:24 +02:00
..
da8xx_remoteproc.c
imx_dsp_rproc.c remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning 2023-05-24 17:32:53 +01:00
imx_rproc.c remoteproc: imx_rproc: Call of_node_put() on iteration error 2023-05-17 11:53:45 +02:00
imx_rproc.h remoteproc: imx_rproc: Add IMX_RPROC_SCU_API method 2021-10-12 09:16:13 -06:00
ingenic_rproc.c remoteproc: ingenic: Request IRQ disabled 2021-12-06 10:17:44 -07:00
Kconfig remoteproc: stm32: use correct format strings on 64-bit 2024-03-26 18:20:57 -04:00
keystone_remoteproc.c remoteproc/keystone: Switch to using gpiod API 2022-09-19 15:32:27 -06:00
Makefile remoteproc: Add Renesas rcar driver 2021-12-13 11:30:55 -07:00
meson_mx_ao_arc.c remoteproc: meson-mx-ao-arc: fix a bit test 2021-10-04 10:40:29 -05:00
mtk_common.h remoteproc: mediatek: Fix side effect of mt8195 sram power on 2022-04-11 09:56:42 -06:00
mtk_scp_ipi.c remoteproc/mtk_scp: Move clk ops outside send_lock 2023-03-10 09:34:26 +01:00
mtk_scp.c remoteproc: mediatek: Support MT8188 SCP 2022-07-18 11:10:34 -06:00
omap_remoteproc.c remoteproc: omap_remoteproc: Fix typo in comment 2022-06-14 16:57:59 -06:00
omap_remoteproc.h
pru_rproc.c remoteproc: pru: Add support for various PRU cores on K3 AM62x SoCs 2022-07-05 10:40:30 -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: correct kerneldoc 2022-07-18 15:32:33 -05:00
qcom_common.h remoteproc: qcom: Add capability to collect minidumps 2020-12-10 13:16:54 -06: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 remoteproc: qcom: Introduce helper to store pil info in IMEM 2020-07-01 22:10:18 -07:00
qcom_q6v5_adsp.c remoteproc: qcom: using pm_runtime_resume_and_get to simplify the code 2022-07-18 15:32:33 -05:00
qcom_q6v5_mss.c remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers 2023-03-10 09:33:40 +01:00
qcom_q6v5_pas.c remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region() 2022-12-31 13:32:52 +01:00
qcom_q6v5_wcss.c remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in q6v5_wcss_qcs404_power_on() 2022-12-31 13:32:52 +01:00
qcom_q6v5.c remoteproc: qcom: q6v5: Set q6 state to offline on receiving wdog irq 2022-07-18 15:32:34 -05:00
qcom_q6v5.h remoteproc: qcom: q6v5: Add interconnect path proxy vote 2022-03-11 14:22:03 -06:00
qcom_sysmon.c remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() 2022-12-31 13:32:52 +01:00
qcom_wcnss_iris.c remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
qcom_wcnss.c remoteproc: qcom: wcnss: Fix handling of IRQs 2022-07-06 22:24:37 -05:00
qcom_wcnss.h remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
rcar_rproc.c remoteproc: rcar_rproc: Call of_node_put() on iteration error 2023-05-17 11:53:46 +02:00
remoteproc_cdev.c remoteproc: core: Move state checking to remoteproc_core 2022-04-14 11:13:33 -06:00
remoteproc_core.c remoteproc: core: Do pm_relax when in RPROC_OFFLINE state 2023-01-07 11:11:55 +01:00
remoteproc_coredump.c remoteproc: coredump: Correct argument 2 type for memcpy_fromio 2021-11-17 09:37:31 -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 remoteproc: elf_loader: skip segment with memsz as zero 2022-04-13 11:14:03 -06:00
remoteproc_internal.h remoteproc: Introduce rproc features 2022-09-28 10:46:21 -06: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:19:24 +02:00
st_remoteproc.c remoteproc: st: Call of_node_put() on iteration error 2023-05-17 11:53:45 +02:00
st_slim_rproc.c remoteproc: Fix remaining wrong return formatting in documentation 2021-12-08 10:09:40 -07:00
stm32_rproc.c remoteproc: stm32: fix incorrect optional pointers 2024-03-26 18:21:03 -04:00
ti_k3_dsp_remoteproc.c remoteproc: k3-dsp: Add support for IPC-only mode for all K3 DSPs 2022-03-11 14:31:56 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init 2022-06-14 16:54:57 -06:00
ti_sci_proc.h remoteproc: k3: Add TI-SCI processor control helper functions 2020-07-28 17:06:43 -07:00
wkup_m3_rproc.c remoteproc: wkup_m3: Set sysfs_read_only flag 2022-03-04 09:28:32 -07:00