2020-09-26 16:29:42

by Tobias Jordan

[permalink] [raw]
Subject: [PATCH v3] leds: tlc591xx: fix leak of device node iterator

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 <[email protected]>
Reviewed-by: Marek Beh?n <[email protected]>

---
v3: removed linebreak from Fixes: tag in commit message
v2: rebased to Pavel's for-next branch

drivers/leds/leds-tlc591xx.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c
index 0929f1275814..a8cc49752cd5 100644
--- a/drivers/leds/leds-tlc591xx.c
+++ b/drivers/leds/leds-tlc591xx.c
@@ -214,6 +214,7 @@ tlc591xx_probe(struct i2c_client *client,
err = devm_led_classdev_register_ext(dev, &led->ldev,
&init_data);
if (err < 0) {
+ of_node_put(child);
if (err != -EPROBE_DEFER)
dev_err(dev, "couldn't register LED %s\n",
led->ldev.name);
--
2.20.1


2020-09-29 06:59:18

by Tomi Valkeinen

[permalink] [raw]
Subject: Re: [PATCH v3] leds: tlc591xx: fix leak of device node iterator

On 26/09/2020 19:27, Tobias Jordan 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 <[email protected]>
> Reviewed-by: Marek BehĂșn <[email protected]>
>
> ---
> v3: removed linebreak from Fixes: tag in commit message
> v2: rebased to Pavel's for-next branch
>
> drivers/leds/leds-tlc591xx.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c
> index 0929f1275814..a8cc49752cd5 100644
> --- a/drivers/leds/leds-tlc591xx.c
> +++ b/drivers/leds/leds-tlc591xx.c
> @@ -214,6 +214,7 @@ tlc591xx_probe(struct i2c_client *client,
> err = devm_led_classdev_register_ext(dev, &led->ldev,
> &init_data);
> if (err < 0) {
> + of_node_put(child);
> if (err != -EPROBE_DEFER)
> dev_err(dev, "couldn't register LED %s\n",
> led->ldev.name);
>

Reviewed-by: Tomi Valkeinen <[email protected]>

Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki