[PATCH] HSI: omap_ssi: Fix refcount leak in ssi_probe

Miaoqian Lin posted 1 patch 4 years, 2 months ago
drivers/hsi/controllers/omap_ssi_core.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] HSI: omap_ssi: Fix refcount leak in ssi_probe
Posted by Miaoqian Lin 4 years, 2 months ago
When returning or breaking early from a
for_each_available_child_of_node() loop, we need to explicitly call
of_node_put() on the child node to possibly release the node.

Fixes: b209e047bc74 ("HSI: Introduce OMAP SSI driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/hsi/controllers/omap_ssi_core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/hsi/controllers/omap_ssi_core.c b/drivers/hsi/controllers/omap_ssi_core.c
index 44a3f5660c10..eb9820158318 100644
--- a/drivers/hsi/controllers/omap_ssi_core.c
+++ b/drivers/hsi/controllers/omap_ssi_core.c
@@ -524,6 +524,7 @@ static int ssi_probe(struct platform_device *pd)
 		if (!childpdev) {
 			err = -ENODEV;
 			dev_err(&pd->dev, "failed to create ssi controller port\n");
+			of_node_put(child);
 			goto out3;
 		}
 	}
-- 
2.17.1
Re: [PATCH] HSI: omap_ssi: Fix refcount leak in ssi_probe
Posted by Sebastian Reichel 4 years, 2 months ago
Hi,

On Mon, Apr 04, 2022 at 08:52:32AM +0000, Miaoqian Lin wrote:
> When returning or breaking early from a
> for_each_available_child_of_node() loop, we need to explicitly call
> of_node_put() on the child node to possibly release the node.
> 
> Fixes: b209e047bc74 ("HSI: Introduce OMAP SSI driver")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---

Thanks, queued.

-- Sebastian

>  drivers/hsi/controllers/omap_ssi_core.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/hsi/controllers/omap_ssi_core.c b/drivers/hsi/controllers/omap_ssi_core.c
> index 44a3f5660c10..eb9820158318 100644
> --- a/drivers/hsi/controllers/omap_ssi_core.c
> +++ b/drivers/hsi/controllers/omap_ssi_core.c
> @@ -524,6 +524,7 @@ static int ssi_probe(struct platform_device *pd)
>  		if (!childpdev) {
>  			err = -ENODEV;
>  			dev_err(&pd->dev, "failed to create ssi controller port\n");
> +			of_node_put(child);
>  			goto out3;
>  		}
>  	}
> -- 
> 2.17.1
>