mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
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:
parent
f4bb5a75bb
commit
22f9efb3ae
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user