Message ID | 20220605075841.19929-1-linmq006@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: cns3xxx: Fix refcount leak in cns3xxx_init | expand |
Miaoqian Lin <linmq006@gmail.com> writes: > 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() to avoid refcount leak. > > Fixes: 415f59142d9d ("ARM: cns3xxx: initial DT support") > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Acked-by: Krzysztof Halasa <khalasa@piap.pl> Arnd, I guess you are in the best position to pick this patch up? Thanks to both of you. > --- > arch/arm/mach-cns3xxx/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c > index e4f4b20b83a2..3fc4ec830e3a 100644 > --- a/arch/arm/mach-cns3xxx/core.c > +++ b/arch/arm/mach-cns3xxx/core.c > @@ -372,6 +372,7 @@ static void __init cns3xxx_init(void) > /* De-Asscer SATA Reset */ > cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA)); > } > + of_node_put(dn); > > dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-sdhci"); > if (of_device_is_available(dn)) { > @@ -385,6 +386,7 @@ static void __init cns3xxx_init(void) > cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO)); > cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SDIO)); > } > + of_node_put(dn); > > pm_power_off = cns3xxx_power_off;
On Thu, Jun 23, 2022 at 10:36 AM Krzysztof Hałasa <khalasa@piap.pl> wrote: > > Miaoqian Lin <linmq006@gmail.com> writes: > > > 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() to avoid refcount leak. > > > > Fixes: 415f59142d9d ("ARM: cns3xxx: initial DT support") > > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > > Acked-by: Krzysztof Halasa <khalasa@piap.pl> > > Arnd, I guess you are in the best position to pick this patch up? > Thanks to both of you. Done now, thanks! Arnd
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c index e4f4b20b83a2..3fc4ec830e3a 100644 --- a/arch/arm/mach-cns3xxx/core.c +++ b/arch/arm/mach-cns3xxx/core.c @@ -372,6 +372,7 @@ static void __init cns3xxx_init(void) /* De-Asscer SATA Reset */ cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA)); } + of_node_put(dn); dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-sdhci"); if (of_device_is_available(dn)) { @@ -385,6 +386,7 @@ static void __init cns3xxx_init(void) cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO)); cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SDIO)); } + of_node_put(dn); pm_power_off = cns3xxx_power_off;
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() to avoid refcount leak. Fixes: 415f59142d9d ("ARM: cns3xxx: initial DT support") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- arch/arm/mach-cns3xxx/core.c | 2 ++ 1 file changed, 2 insertions(+)