firmware: meson_sm: fix device leak at probe
Subsystems (2)
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.
--- drivers/firmware/meson/meson_sm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/firmware/meson/meson_sm.c +6 -1
@@ -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
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 [email protected] # 5.5Cc Carlo Caione <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Quoted 3 lines
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).
…
How do you think about to use the attribute “put_device” for this purpose?
https://elixir.bootlin.com/linux/v6.16/source/include/linux/device.h#L1140
Regards,
Markus
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 [email protected] # 5.5Cc Carlo Caione <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Can someone pick this one up (along with the compile-test patch)?
Johan
Neil Armstrong
maintainerQuoted 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 [email protected] # 5.5Cc Carlo Caione <[email protected]>Signed-off-by Johan Hovold <[email protected]>Can someone pick this one up (along with the compile-test patch)?
I'll pick it.
Neil
Quoted 2 lines
Johan
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