]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: OMAP2+: Fix refcount leak in omapdss_init_of
authorMiaoqian Lin <linmq006@gmail.com>
Wed, 1 Jun 2022 04:48:58 +0000 (08:48 +0400)
committerTony Lindgren <tony@atomide.com>
Tue, 28 Jun 2022 04:36:26 +0000 (07:36 +0300)
omapdss_find_dss_of_node() calls of_find_compatible_node() to get device
node. of_find_compatible_node() returns a node pointer with refcount
incremented, we should use of_node_put() on it when done.
Add missing of_node_put() in later error path and normal path.

Fixes: e0c827aca0730 ("drm/omap: Populate DSS children in omapdss driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Message-Id: <20220601044858.3352-1-linmq006@gmail.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/display.c

index 21413a9b7b6c6281f55a1c136547df48dd875673..ed2cb2649cf6bfda0dac10912df0f8c478223a34 100644 (file)
@@ -259,11 +259,13 @@ static int __init omapdss_init_of(void)
 
        if (!pdev) {
                pr_err("Unable to find DSS platform device\n");
+               of_node_put(node);
                return -ENODEV;
        }
 
        r = of_platform_populate(node, NULL, NULL, &pdev->dev);
        put_device(&pdev->dev);
+       of_node_put(node);
        if (r) {
                pr_err("Unable to populate DSS submodule devices\n");
                return r;