]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm: sti: fix device leaks at component probe
authorJohan Hovold <johan@kernel.org>
Mon, 22 Sep 2025 12:20:12 +0000 (14:20 +0200)
committerRaphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Mon, 24 Nov 2025 12:56:16 +0000 (13:56 +0100)
Make sure to drop the references taken to the vtg devices by
of_find_device_by_node() when looking up their driver data during
component probe.

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

Fixes: cc6b741c6f63 ("drm: sti: remove useless fields from vtg structure")
Cc: stable@vger.kernel.org # 4.16
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20250922122012.27407-1-johan@kernel.org
Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
drivers/gpu/drm/sti/sti_vtg.c

index ee81691b32036d209020498511841f6da053e17d..ce6bc7e7b1359bfda456b4c4b35cd4f8b52b6544 100644 (file)
@@ -143,12 +143,17 @@ struct sti_vtg {
 struct sti_vtg *of_vtg_find(struct device_node *np)
 {
        struct platform_device *pdev;
+       struct sti_vtg *vtg;
 
        pdev = of_find_device_by_node(np);
        if (!pdev)
                return NULL;
 
-       return (struct sti_vtg *)platform_get_drvdata(pdev);
+       vtg = platform_get_drvdata(pdev);
+
+       put_device(&pdev->dev);
+
+       return vtg;
 }
 
 static void vtg_reset(struct sti_vtg *vtg)