diff mbox series

[v2] leds: tlc591xx: fix leak of device node iterator

Message ID 20200926005117.GA32209@agrajag.zerfleddert.de
State New
Headers show
Series [v2] leds: tlc591xx: fix leak of device node iterator | expand

Commit Message

Tobias Jordan Sept. 26, 2020, 12:51 a.m. UTC
In one of the error paths of the for_each_child_of_node loop in
tlc591xx_probe, add missing call to of_node_put.

Fixes: 1ab4531ad132 ("leds: tlc591xx: simplify driver by using the
managed led API")

Signed-off-by: Tobias Jordan <kernel@cdqe.de>
---
v2: rebased to Pavel's for-next branch

 drivers/leds/leds-tlc591xx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Marek Behún Sept. 26, 2020, 1:24 a.m. UTC | #1
On Sat, 26 Sep 2020 02:51:17 +0200
Tobias Jordan <kernel@cdqe.de> wrote:

> In one of the error paths of the for_each_child_of_node loop in

> tlc591xx_probe, add missing call to of_node_put.

> 

> Fixes: 1ab4531ad132 ("leds: tlc591xx: simplify driver by using the

> managed led API")

> 

> Signed-off-by: Tobias Jordan <kernel@cdqe.de>

> ---

> v2: rebased to Pavel's for-next branch

> 

>  drivers/leds/leds-tlc591xx.c | 4 +++-

>  1 file changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c

> index f24271337bd8..5b9dfdf743ec 100644

> --- a/drivers/leds/leds-tlc591xx.c

> +++ b/drivers/leds/leds-tlc591xx.c

> @@ -205,10 +205,12 @@ tlc591xx_probe(struct i2c_client *client,

>  		led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS;

>  		err = devm_led_classdev_register_ext(dev, &led->ldev,

>  						     &init_data);

> -		if (err < 0)

> +		if (err < 0) {

> +			of_node_put(child);

>  			return dev_err_probe(dev, err,

>  					     "couldn't register LED %s\n",

>  					     led->ldev.name);

> +		}

>  	}

>  	return 0;

>  }


Reviewed-by: Marek Behún <kabel@kernel.org>
Pavel Machek Sept. 30, 2020, 5:11 p.m. UTC | #2
Hi!

> > In one of the error paths of the for_each_child_of_node loop in
> > tlc591xx_probe, add missing call to of_node_put.
> > 
> > Fixes: 1ab4531ad132 ("leds: tlc591xx: simplify driver by using the
> > managed led API")
> > 
> > Signed-off-by: Tobias Jordan <kernel@cdqe.de>
> 
> Reviewed-by: Marek Behún <kabel@kernel.org>

Thanks, applied.

Marek: Thanks for review. If I can get you to trim parts not
interesting for the email, I'll be even happier.

:-).

Best regards,

									Pavel
diff mbox series

Patch

diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c
index f24271337bd8..5b9dfdf743ec 100644
--- a/drivers/leds/leds-tlc591xx.c
+++ b/drivers/leds/leds-tlc591xx.c
@@ -205,10 +205,12 @@  tlc591xx_probe(struct i2c_client *client,
 		led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS;
 		err = devm_led_classdev_register_ext(dev, &led->ldev,
 						     &init_data);
-		if (err < 0)
+		if (err < 0) {
+			of_node_put(child);
 			return dev_err_probe(dev, err,
 					     "couldn't register LED %s\n",
 					     led->ldev.name);
+		}
 	}
 	return 0;
 }