[ Smatch checking is paused while we raise funding. #SadFace
https://lore.kernel.org/all/[email protected]/ -dan ]
Hello Peng Fan,
Commit edd2a9956055 ("remoteproc: imx_rproc: Introduce prepare ops
for imx_rproc_dcfg") from Jan 9, 2026 (linux-next), leads to the
following Smatch static checker warning:
drivers/remoteproc/imx_rproc.c:648 imx_rproc_prepare()
warn: ignoring unreachable code.
drivers/remoteproc/imx_rproc.c
605 static int imx_rproc_prepare(struct rproc *rproc)
606 {
607 struct imx_rproc *priv = rproc->priv;
608 struct device_node *np = priv->dev->of_node;
609 struct rproc_mem_entry *mem;
610 int i = 0;
611 u32 da;
612
613 /* Register associated reserved memory regions */
614 while (1) {
615 int err;
616 struct resource res;
617
618 err = of_reserved_mem_region_to_resource(np, i++, &res);
619 if (err)
620 return 0;
621
622 /*
623 * Ignore the first memory region which will be used
vdev buffer.
624 * No need to do extra handlings, rproc_add_virtio_dev
will handle it.
625 */
626 if (strstarts(res.name, "vdev0buffer"))
627 continue;
628
629 if (strstarts(res.name, "rsc-table"))
630 continue;
631
632 /* No need to translate pa to da, i.MX use same map */
633 da = res.start;
634
635 /* Register memory region */
636 mem = rproc_mem_entry_init(priv->dev, NULL,
(dma_addr_t)res.start,
637 resource_size(&res), da,
638 imx_rproc_mem_alloc,
imx_rproc_mem_release,
639 "%.*s", strchrnul(res.name,
'@') - res.name,
640 res.name);
641 if (!mem)
642 return -ENOMEM;
643
644 rproc_coredump_add_segment(rproc, da,
resource_size(&res));
645 rproc_add_carveout(rproc, mem);
646 }
647
--> 648 if (priv->ops && priv->ops->prepare)
649 return priv->ops->prepare(rproc);
This is unreachable code.
650
651 return 0;
652 }
regards,
dan carpenter