tty: serial: Fix refcount leak bug in ucc_uart.c
authorLiang He <windhl@126.com>
Sat, 18 Jun 2022 06:08:50 +0000 (14:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:09:31 +0000 (11:09 +0200)
[ Upstream commit d24d7bb2cd947676f9b71fb944d045e09b8b282f ]

In soc_info(), of_find_node_by_type() will return a node pointer
with refcount incremented. We should use of_node_put() when it is
not used anymore.

Acked-by: Timur Tabi <timur@kernel.org>
Signed-off-by: Liang He <windhl@126.com>
Link: https://lore.kernel.org/r/20220618060850.4058525-1-windhl@126.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/serial/ucc_uart.c

index 481eb2989a1e1cbf3a4bbc3274a74c4bb359e3d9..ed1658b61e5417e60cc63f2769838fe285355881 100644 (file)
@@ -1143,6 +1143,8 @@ static unsigned int soc_info(unsigned int *rev_h, unsigned int *rev_l)
                /* No compatible property, so try the name. */
                soc_string = np->name;
 
+       of_node_put(np);
+
        /* Extract the SOC number from the "PowerPC," string */
        if ((sscanf(soc_string, "PowerPC,%u", &soc) != 1) || !soc)
                return 0;