]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
remoteproc: imx_rproc: Initialize workqueue earlier
authorPeng Fan <peng.fan@nxp.com>
Fri, 19 Jul 2024 08:36:13 +0000 (16:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:33:03 +0000 (16:33 +0200)
[ Upstream commit 858e57c1d3dd7b92cc0fa692ba130a0a5d57e49d ]

Initialize workqueue before requesting mailbox channel, otherwise if
mailbox interrupt comes before workqueue ready, the imx_rproc_rx_callback
will trigger issue.

Fixes: 2df7062002d0 ("remoteproc: imx_proc: enable virtio/mailbox")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20240719-imx_rproc-v2-3-10d0268c7eb1@nxp.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/remoteproc/imx_rproc.c

index 3c8b64db8823c75151154e76a6985a03749f6975..448b9a5438e0b834011f9bd59473dba3986d84f2 100644 (file)
@@ -1076,6 +1076,8 @@ static int imx_rproc_probe(struct platform_device *pdev)
                return -ENOMEM;
        }
 
+       INIT_WORK(&priv->rproc_work, imx_rproc_vq_work);
+
        ret = imx_rproc_xtr_mbox_init(rproc);
        if (ret)
                goto err_put_wkq;
@@ -1094,8 +1096,6 @@ static int imx_rproc_probe(struct platform_device *pdev)
        if (ret)
                goto err_put_scu;
 
-       INIT_WORK(&priv->rproc_work, imx_rproc_vq_work);
-
        if (rproc->state != RPROC_DETACHED)
                rproc->auto_boot = of_property_read_bool(np, "fsl,auto-boot");