linux/drivers/remoteproc
Arnaud Pouliquen 19882a49b2 remoteproc: stm32_rproc: Add mutex protection for workqueue
[ Upstream commit 35bdafda40 ]

The workqueue may execute late even after remoteproc is stopped or
stopping, some resources (rpmsg device and endpoint) have been
released in rproc_stop_subdevices(), then rproc_vq_interrupt()
accessing these resources will cause kernel dump.

Call trace:
virtqueue_add_inbuf
virtqueue_add_inbuf
rpmsg_recv_single
rpmsg_recv_done
vring_interrupt
stm32_rproc_mb_vq_work
process_one_work
worker_thread
kthread

Suggested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Link: https://lore.kernel.org/r/20230331160634.3113031-1-arnaud.pouliquen@foss.st.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-05-24 17:36:44 +01:00
..
da8xx_remoteproc.c remoteproc: Remove dev_err() usage after platform_get_irq() 2019-08-26 21:59:58 -07:00
imx_rproc.c remoteproc: imx_rproc: Call of_node_put() on iteration error 2023-05-17 11:50:24 +02:00
ingenic_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Kconfig remoteproc: imx-rproc: Fix IMX_REMOTEPROC configuration 2021-06-10 11:29:48 -05:00
keystone_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Makefile remoteproc: pru: Add a PRU remoteproc driver 2020-12-10 10:55:55 -06:00
mtk_common.h remoteproc/mediatek: support L1TCM 2021-02-09 09:08:47 -06:00
mtk_scp.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
mtk_scp_ipi.c remoteproc/mtk_scp: Move clk ops outside send_lock 2023-03-10 09:40:09 +01:00
omap_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
omap_remoteproc.h remoteproc/omap: Switch to SPDX license identifiers 2020-03-25 22:29:51 -07:00
pru_rproc.c remoteproc: pru: Add support for various PRU cores on K3 AM64x SoCs 2021-06-23 13:39:20 -05: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: Add capability to collect minidumps 2020-12-10 13:16:54 -06: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 2022-01-20 09:13:13 +01: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.c remoteproc: qcom_q6v5: Use devm_qcom_smem_state_get() to fix missing put() 2021-06-23 13:35:18 -05:00
qcom_q6v5.h remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5_adsp.c remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region 2022-04-08 14:23:47 +02:00
qcom_q6v5_mss.c remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers 2023-03-10 09:39:43 +01:00
qcom_q6v5_pas.c remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region() 2022-12-31 13:14:36 +01:00
qcom_q6v5_wcss.c remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in q6v5_wcss_qcs404_power_on() 2022-12-31 13:14:36 +01:00
qcom_sysmon.c remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() 2022-12-31 13:14:36 +01:00
qcom_wcnss.c remoteproc: qcom: wcnss: Fix handling of IRQs 2022-08-17 14:24:06 +02:00
qcom_wcnss.h remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
qcom_wcnss_iris.c remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
remoteproc_cdev.c remoteproc: core: Fix cdev remove and rproc del 2021-06-23 13:41:44 -05:00
remoteproc_core.c remoteproc: core: Do pm_relax when in RPROC_OFFLINE state 2023-01-12 11:58:59 +01:00
remoteproc_coredump.c remoteproc: Fix the wrong default value of is_iomem 2021-11-18 19:17:18 +01:00
remoteproc_debugfs.c remoteproc: Fix count check in rproc_coredump_write() 2022-04-08 14:22:52 +02: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: Fix the wrong default value of is_iomem 2021-11-18 19:17:18 +01:00
remoteproc_internal.h remoteproc: Add new get_loaded_rsc_table() to rproc_ops 2021-03-18 07:54:53 -05:00
remoteproc_sysfs.c remoteproc: Properly deal with a detach request when attached 2021-03-18 08:02:10 -05:00
remoteproc_virtio.c remoteproc: Fix various kernel-doc warnings 2021-05-27 22:07:43 -05:00
st_remoteproc.c remoteproc: st: Call of_node_put() on iteration error 2023-05-17 11:50:24 +02:00
st_slim_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
stm32_rproc.c remoteproc: stm32_rproc: Add mutex protection for workqueue 2023-05-24 17:36:44 +01:00
ti_k3_dsp_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init 2022-08-17 14:24:03 +02: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: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00