On Sun, 8 Feb 2026 at 04:29, Peng Fan (OSS) <[email protected]> wrote: > > From: Peng Fan <[email protected]> > > Smatch reports unreachable code in imx_rproc_prepare(), where an early > return inside the reserved-memory parsing loop prevents platform > prepare_ops from being executed. > > When of_reserved_mem_region_to_resource() fails, imx_rproc_prepare() > returns immediately, so the platform-specific prepare callback is never > called. As a result, prepare_ops such as imx_rproc_sm_lmm_prepare() on > i.MX95 have no chance to run. > > This is problematic when Linux controls the M7 Logical Machine and is > responsible for preparing resources such as TCM. Without running the > platform prepare callback, loading the M7 ELF into TCM may fail if the > bootloader did not power up and initialize TCM. > > Fix this by breaking out of the reserved-memory loop instead of > returning, allowing the platform prepare_ops to be executed as intended. > > Fixes: edd2a9956055 ("remoteproc: imx_rproc: Introduce prepare ops for > imx_rproc_dcfg") > Reported-by: Dan Carpenter <[email protected]> > Closes: https://lore.kernel.org/linux-remoteproc/aYYXAa2Fj36XG4yQ@p14s/T/#t > Signed-off-by: Peng Fan <[email protected]> > --- > drivers/remoteproc/imx_rproc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c > index > f5f916d6790519360f446f063e09d018c5654953..8c8ddbf995a46b01627d15a2eb3da0b72eee6285 > 100644 > --- a/drivers/remoteproc/imx_rproc.c > +++ b/drivers/remoteproc/imx_rproc.c > @@ -617,7 +617,7 @@ static int imx_rproc_prepare(struct rproc *rproc) > > err = of_reserved_mem_region_to_resource(np, i++, &res); > if (err) > - return 0; > + break; >
I will pick this up for the next cycle. Thanks, Mathieu > /* > * Ignore the first memory region which will be used vdev > buffer. > > --- > base-commit: 9845cf73f7db6094c0d8419d6adb848028f4a921 > change-id: 20260208-imx-rproc-fix-843dd1031b5b > > Best regards, > -- > Peng Fan <[email protected]> >

