remoteproc: scp: Fix device reference leak on failed lookup

Make sure to drop the reference taken to the SCP device when attempting
to look up its driver data before the driver has been bound.

Note that holding a reference to a device does not prevent its driver
data from going away.

Fixes: 63c13d61ea ("remoteproc/mediatek: add SCP support for mt8183")
Cc: stable@vger.kernel.org	# 5.6
Cc: Erin Lo <erin.lo@mediatek.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20260706065614.389412-1-johan@kernel.org
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
Johan Hovold 2026-07-06 08:56:14 +02:00 committed by Mathieu Poirier
parent f4bb5a75bb
commit 22f9efb3ae

View File

@ -36,6 +36,7 @@ struct mtk_scp *scp_get(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct device_node *scp_node;
struct platform_device *scp_pdev;
struct mtk_scp *scp;
scp_node = of_parse_phandle(dev->of_node, "mediatek,scp", 0);
if (!scp_node) {
@ -51,7 +52,13 @@ struct mtk_scp *scp_get(struct platform_device *pdev)
return NULL;
}
return platform_get_drvdata(scp_pdev);
scp = platform_get_drvdata(scp_pdev);
if (!scp) {
put_device(&scp_pdev->dev);
return NULL;
}
return scp;
}
EXPORT_SYMBOL_GPL(scp_get);