linux/drivers/remoteproc
Peng Fan 500778df9e remoteproc: imx_rproc: Fix invalid loaded resource table detection
[ Upstream commit 26aa529501 ]

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>
History 2026-03-04 07:21:22 -05:00
..
da8xx_remoteproc.c remoteproc: da8xx: Use devm_rproc_add() helper 2025-08-26 08:21:23 -06:00
imx_dsp_rproc.c remoteproc: imx_dsp_rproc: Skip RP_MBOX_SUSPEND_SYSTEM when mailbox TX channel is uninitialized 2026-03-04 07:20:29 -05:00
imx_rproc.c remoteproc: imx_rproc: Fix invalid loaded resource table detection 2026-03-04 07:21:22 -05:00
imx_rproc.h remoteproc: imx_rproc: Introduce start/stop/detect_mode ops for imx_rproc_dcfg 2025-09-15 10:03:02 -06:00
ingenic_rproc.c remoteporc: ingenic: Use devm_platform_ioremap_resource_byname() 2024-09-09 09:50:54 -06:00
Kconfig remoteproc: qcom: pas: Conclude the rename from adsp 2025-06-10 22:03:47 -05:00
keystone_remoteproc.c remoteproc: keystone: Use devm_rproc_add() helper 2025-08-26 09:29:37 -06:00
Makefile remoteproc: k3: Refactor mailbox rx_callback functions into common driver 2025-05-20 11:19:10 -06:00
meson_mx_ao_arc.c remoteproc: Switch back to struct platform_driver::remove() 2024-10-29 11:27:37 -06:00
mtk_common.h remoteproc: mediatek: Support setting DRAM and IPI shared buffer sizes 2024-04-30 10:43:59 -06:00
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 remoteproc: Don't use %pK through printk 2025-06-17 08:03:24 -05:00
omap_remoteproc.h remoteproc/omap: Switch to SPDX license identifiers 2020-03-25 22:29:51 -07:00
pru_rproc.c remoteproc: pru: Fix potential NULL pointer dereference in pru_rproc_set_ctable() 2025-09-23 11:49:58 -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: enable in-kernel PD mapper 2024-06-25 07:40:38 -07:00
qcom_common.h remoteproc: qcom: enable in-kernel PD mapper 2024-06-25 07:40:38 -07: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.c remoteproc: qcom: q6v5: Avoid handling handover twice 2025-09-22 08:33:06 -05:00
qcom_q6v5.h remoteproc: qcom: q6v5: Add interconnect path proxy vote 2022-03-11 14:22:03 -06:00
qcom_q6v5_adsp.c soc: qcom: mdt_loader: Remove pas id parameter 2025-08-11 10:14:32 -05:00
qcom_q6v5_mss.c remoteproc: qcom_q6v5_mss: support loading MBN file on msm8974 2025-09-20 21:29:50 -05:00
qcom_q6v5_pas.c remoteproc updates for v6.18 2025-10-04 15:45:17 -07:00
qcom_q6v5_wcss.c remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs 2025-12-18 14:03:28 +01:00
qcom_sysmon.c remoteproc: sysmon: Update qcom_add_sysmon_subdev() comment 2025-03-22 08:42:39 -05:00
qcom_wcnss.c remoteproc: qcom_wcnss: Fix on platforms without fallback regulators 2025-05-13 10:34:33 -05: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: qcom_wcnss_iris: Add missing put_device() on error in probe 2025-05-13 10:10:55 -05:00
rcar_rproc.c remoteproc: Switch back to struct platform_driver::remove() 2024-10-29 11:27:37 -06:00
remoteproc_cdev.c remoteproc: core: Move state checking to remoteproc_core 2022-04-14 11:13:33 -06:00
remoteproc_core.c remoteproc: Don't use %pK through printk 2025-06-17 08:03:24 -05: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: Make rproc_class constant 2024-03-26 11:24:38 -06:00
remoteproc_sysfs.c remoteproc: Make rproc_class constant 2024-03-26 11:24:38 -06:00
remoteproc_virtio.c remoteproc: Don't use %pK through printk 2025-06-17 08:03:24 -05:00
st_remoteproc.c remoteproc: st: Use syscon_regmap_lookup_by_phandle_args 2025-01-15 10:04:27 -07:00
st_slim_rproc.c remoteproc: Don't use %pK through printk 2025-06-17 08:03:24 -05:00
stm32_rproc.c remoteproc: stm32_rproc: Allow to specify firmware default name 2025-04-07 09:43:43 -06:00
ti_k3_common.c remoteproc: k3: Correctly release some resources allocated in k3_rproc_request_mbox() 2025-08-29 10:09:52 -06:00
ti_k3_common.h remoteproc: k3: Refactor release_tsp() functions into common driver 2025-05-20 11:19:12 -06:00
ti_k3_dsp_remoteproc.c remoteproc: k3: Correctly release some resources allocated in k3_rproc_request_mbox() 2025-08-29 10:09:52 -06:00
ti_k3_m4_remoteproc.c remoteproc: k3: Refactor release_tsp() functions into common driver 2025-05-20 11:19:12 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3: Correctly release some resources allocated in k3_rproc_request_mbox() 2025-08-29 10:09:52 -06:00
ti_sci_proc.h remoteproc: k3: Factor out TI-SCI processor control OF get function 2024-08-21 11:21:02 -06:00
wkup_m3_rproc.c remoteproc: wkup_m3: Use devm_rproc_add() helper 2025-08-26 09:47:00 -06:00
xlnx_r5_remoteproc.c remoteproc: xlnx: Fix kernel-doc warnings 2025-07-22 09:13:38 -06:00