Skip to contentSkip to conversation

firmware: meson_sm: fix device leak at probe

PATCH Applied Johan Hovold 4 participants 6 messages Jul 25, 2025 – Sep 4, 2025

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 firmware: meson_sm: fix device leak at probe

Make sure to drop the reference to the secure monitor device taken by of_find_device_by_node() when looking up its driver data on behalf of other drivers (e.g. during probe).

Note that holding a reference to the platform device does not prevent its driver data from going away so there is no point in keeping the reference after the helper returns.

Fixes 8cde3c2153e8 ("firmware: meson_sm: Rework driver as a proper platform driver")
Cc Carlo Caione <[email protected]>
---
 drivers/firmware/meson/meson_sm.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/firmware/meson/meson_sm.c +6 -1
index f25a9746249b..3ab67aaa9e5d 100644
@@ -232,11 +232,16 @@ EXPORT_SYMBOL(meson_sm_call_write);
 struct meson_sm_firmware *meson_sm_get(struct device_node *sm_node)
 {
 	struct platform_device *pdev = of_find_device_by_node(sm_node);
+	struct meson_sm_firmware *fw;
 
 	if (!pdev)
 		return NULL;
 
-	return platform_get_drvdata(pdev);
+	fw = platform_get_drvdata(pdev);
+
+	put_device(&pdev->dev);
+
+	return fw;
 }
 EXPORT_SYMBOL_GPL(meson_sm_get);
 
Signature · 1 line
2.49.1
reviewer Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · Johan Hovold

Make sure to drop the reference to the secure monitor device taken by of_find_device_by_node() when looking up its driver data on behalf of other drivers (e.g. during probe).

Quoted 8 lines

Note that holding a reference to the platform device does not prevent its driver data from going away so there is no point in keeping the reference after the helper returns.

Fixes 8cde3c2153e8 ("firmware: meson_sm: Rework driver as a proper platform driver")
Cc Carlo Caione <[email protected]>
#3 lore raw
In reply to Johan Hovold
Quoted 4 lines · Johan Hovold

Make sure to drop the reference to the secure monitor device taken by of_find_device_by_node() when looking up its driver data on behalf of other drivers (e.g. during probe).

Quoted 8 lines

Note that holding a reference to the platform device does not prevent its driver data from going away so there is no point in keeping the reference after the helper returns.

Fixes 8cde3c2153e8 ("firmware: meson_sm: Rework driver as a proper platform driver")
Cc Carlo Caione <[email protected]>

Can someone pick this one up (along with the compile-test patch)?

Johan

maintainer
#4 lore raw
Quoted 9 lines · Johan Hovold
Quoted 8 lines · Johan Hovold

Make sure to drop the reference to the secure monitor device taken by of_find_device_by_node() when looking up its driver data on behalf of other drivers (e.g. during probe).

Note that holding a reference to the platform device does not prevent its driver data from going away so there is no point in keeping the reference after the helper returns.

Quoted 6 lines
Quoted 4 lines
Fixes 8cde3c2153e8 ("firmware: meson_sm: Rework driver as a proper platform driver")
Cc Carlo Caione <[email protected]>

Can someone pick this one up (along with the compile-test patch)?

I'll pick it.

Neil

Quoted 2 lines

Johan

maintainer Applied
#5 lore raw
In reply to Johan Hovold

Hi,

Quoted 9 lines · Johan Hovold

Make sure to drop the reference to the secure monitor device taken by of_find_device_by_node() when looking up its driver data on behalf of other drivers (e.g. during probe).

Note that holding a reference to the platform device does not prevent its driver data from going away so there is no point in keeping the reference after the helper returns.

[...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.18/drivers)

[1/1] firmware: meson_sm: fix device leak at probe

      https://git.kernel.org/amlogic/c/8ece3173f87df03935906d0c612c2aeda9db92ca

These changes has been applied on the intermediate git tree [1].

The v6.18/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

Signature · 1 line
Neil