ARM: versatile: Add missing of_node_put in dcscb_init
authorPeng Wu <wupeng58@huawei.com>
Thu, 28 Apr 2022 23:03:56 +0000 (01:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:22:42 +0000 (10:22 +0200)
[ Upstream commit 23b44f9c649bbef10b45fa33080cd8b4166800ae ]

The device_node pointer is returned by of_find_compatible_node
with refcount incremented. We should use of_node_put() to avoid
the refcount leak.

Signed-off-by: Peng Wu <wupeng58@huawei.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20220428230356.69418-1-linus.walleij@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/mach-vexpress/dcscb.c

index a0554d7d04f7c72c5a841234799ae9328a4c7d1d..e1adc098f89ac607e0860bb7102583767df2d768 100644 (file)
@@ -144,6 +144,7 @@ static int __init dcscb_init(void)
        if (!node)
                return -ENODEV;
        dcscb_base = of_iomap(node, 0);
+       of_node_put(node);
        if (!dcscb_base)
                return -EADDRNOTAVAIL;
        cfg = readl_relaxed(dcscb_base + DCS_CFG_R);