]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
soc: rockchip: Fix refcount leak in rockchip_grf_init
authorMiaoqian Lin <linmq006@gmail.com>
Mon, 16 May 2022 07:20:10 +0000 (11:20 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 14:53:56 +0000 (16:53 +0200)
[ Upstream commit 9b59588d8be91c96bfb0371e912ceb4f16315dbf ]

of_find_matching_node_and_match returns a node pointer with refcount
incremented, we should use of_node_put() on it when done.
Add missing of_node_put() to avoid refcount leak.

Fixes: 4c58063d4258 ("soc: rockchip: add driver handling grf setup")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220516072013.19731-1-linmq006@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/rockchip/grf.c

index 0931ddb0b38408847ac020081ecc97b898871ea5..39f9a7c1d7e0d077b8dc438ee9d0b8cf072471fe 100644 (file)
@@ -123,12 +123,14 @@ static int __init rockchip_grf_init(void)
                return -ENODEV;
        if (!match || !match->data) {
                pr_err("%s: missing grf data\n", __func__);
+               of_node_put(np);
                return -EINVAL;
        }
 
        grf_info = match->data;
 
        grf = syscon_node_to_regmap(np);
+       of_node_put(np);
        if (IS_ERR(grf)) {
                pr_err("%s: could not get grf syscon\n", __func__);
                return PTR_ERR(grf);