umber-kernel/drivers/remoteproc
Peng Fan 500778df9e remoteproc: imx_rproc: Fix invalid loaded resource table detection
[ Upstream commit 26aa5295010ffaebcf8f1991c53fa7cf2ee1b20d ]

imx_rproc_elf_find_loaded_rsc_table() may incorrectly report a loaded
resource table even when the current firmware does not provide one.

When the device tree contains a "rsc-table" entry, priv->rsc_table is
non-NULL and denotes where a resource table would be located if one is
present in memory. However, when the current firmware has no resource
table, rproc->table_ptr is NULL. The function still returns
priv->rsc_table, and the remoteproc core interprets this as a valid loaded
resource table.

Fix this by returning NULL from imx_rproc_elf_find_loaded_rsc_table() when
there is no resource table for the current firmware (i.e. when
rproc->table_ptr is NULL). This aligns the function's semantics with the
remoteproc core: a loaded resource table is only reported when a valid
table_ptr exists.

With this change, starting firmware without a resource table no longer
triggers a crash.

Fixes: e954a1bd16 ("remoteproc: imx_rproc: Use imx specific hook for find_loaded_rsc_table")
Cc: stable@vger.kernel.org
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20260129-imx-rproc-fix-v3-1-fc4e41e6e750@nxp.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-03-04 07:21:22 -05:00
..
Kconfig
Makefile
da8xx_remoteproc.c
imx_dsp_rproc.c
imx_rproc.c remoteproc: imx_rproc: Fix invalid loaded resource table detection 2026-03-04 07:21:22 -05:00
imx_rproc.h
ingenic_rproc.c
keystone_remoteproc.c
meson_mx_ao_arc.c
mtk_common.h
mtk_scp.c remoteproc: mediatek: Break lock dependency to `prepare_lock` 2026-03-04 07:20:30 -05:00
mtk_scp_ipi.c remoteproc: mediatek: Break lock dependency to `prepare_lock` 2026-03-04 07:20:30 -05:00
omap_remoteproc.c
omap_remoteproc.h
pru_rproc.c
pru_rproc.h
qcom_common.c
qcom_common.h
qcom_pil_info.c
qcom_pil_info.h
qcom_q6v5.c
qcom_q6v5.h
qcom_q6v5_adsp.c
qcom_q6v5_mss.c
qcom_q6v5_pas.c
qcom_q6v5_wcss.c
qcom_sysmon.c
qcom_wcnss.c
qcom_wcnss.h
qcom_wcnss_iris.c
rcar_rproc.c
remoteproc_cdev.c
remoteproc_core.c
remoteproc_coredump.c
remoteproc_debugfs.c
remoteproc_elf_helpers.h
remoteproc_elf_loader.c
remoteproc_internal.h
remoteproc_sysfs.c
remoteproc_virtio.c
st_remoteproc.c
st_slim_rproc.c
stm32_rproc.c
ti_k3_common.c
ti_k3_common.h
ti_k3_dsp_remoteproc.c
ti_k3_m4_remoteproc.c
ti_k3_r5_remoteproc.c
ti_sci_proc.h
wkup_m3_rproc.c
xlnx_r5_remoteproc.c