All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] leds: ktd2692: Add missing of_node_put
@ 2015-11-10  3:00 Ingi Kim
  2015-11-10 15:32 ` Rob Herring
  2015-11-16 10:00 ` Jacek Anaszewski
  0 siblings, 2 replies; 6+ messages in thread
From: Ingi Kim @ 2015-11-10  3:00 UTC (permalink / raw)
  To: robh+dt, j.anaszewski; +Cc: linux-leds, linux-kernel, Ingi Kim

The refcount of device_node increases after of_node_get() is called.
So, a break out of the loop requires of_node_put().

This patch adds missing of_node_put() when loop breaks.

Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>
---
 drivers/leds/leds-ktd2692.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
index feca07b..dbf37ce 100644
--- a/drivers/leds/leds-ktd2692.c
+++ b/drivers/leds/leds-ktd2692.c
@@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context *led, struct device *dev,
 				   &cfg->movie_max_microamp);
 	if (ret) {
 		dev_err(dev, "failed to parse led-max-microamp\n");
-		return ret;
+		goto err_parse_dt;
 	}
 
 	ret = of_property_read_u32(child_node, "flash-max-microamp",
 				   &cfg->flash_max_microamp);
 	if (ret) {
 		dev_err(dev, "failed to parse flash-max-microamp\n");
-		return ret;
+		goto err_parse_dt;
 	}
 
 	ret = of_property_read_u32(child_node, "flash-max-timeout-us",
 				   &cfg->flash_max_timeout);
-	if (ret)
+	if (ret) {
 		dev_err(dev, "failed to parse flash-max-timeout-us\n");
+		goto err_parse_dt;
+	}
+
+	return 0;
 
+err_parse_dt:
 	of_node_put(child_node);
 	return ret;
 }
-- 
2.0.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: ktd2692: Add missing of_node_put
  2015-11-10  3:00 [PATCH] leds: ktd2692: Add missing of_node_put Ingi Kim
@ 2015-11-10 15:32 ` Rob Herring
  2015-11-16 10:00 ` Jacek Anaszewski
  1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring @ 2015-11-10 15:32 UTC (permalink / raw)
  To: Ingi Kim; +Cc: Jacek Anaszewski, Linux LED Subsystem, linux-kernel

On Mon, Nov 9, 2015 at 9:00 PM, Ingi Kim <ingi2.kim@samsung.com> wrote:
> The refcount of device_node increases after of_node_get() is called.
> So, a break out of the loop requires of_node_put().
>
> This patch adds missing of_node_put() when loop breaks.
>
> Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>

Acked-by: Rob Herring <robh@kernel.org>

> ---
>  drivers/leds/leds-ktd2692.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
> index feca07b..dbf37ce 100644
> --- a/drivers/leds/leds-ktd2692.c
> +++ b/drivers/leds/leds-ktd2692.c
> @@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context *led, struct device *dev,
>                                    &cfg->movie_max_microamp);
>         if (ret) {
>                 dev_err(dev, "failed to parse led-max-microamp\n");
> -               return ret;
> +               goto err_parse_dt;
>         }
>
>         ret = of_property_read_u32(child_node, "flash-max-microamp",
>                                    &cfg->flash_max_microamp);
>         if (ret) {
>                 dev_err(dev, "failed to parse flash-max-microamp\n");
> -               return ret;
> +               goto err_parse_dt;
>         }
>
>         ret = of_property_read_u32(child_node, "flash-max-timeout-us",
>                                    &cfg->flash_max_timeout);
> -       if (ret)
> +       if (ret) {
>                 dev_err(dev, "failed to parse flash-max-timeout-us\n");
> +               goto err_parse_dt;
> +       }
> +
> +       return 0;
>
> +err_parse_dt:
>         of_node_put(child_node);
>         return ret;
>  }
> --
> 2.0.5
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: ktd2692: Add missing of_node_put
  2015-11-10  3:00 [PATCH] leds: ktd2692: Add missing of_node_put Ingi Kim
  2015-11-10 15:32 ` Rob Herring
@ 2015-11-16 10:00 ` Jacek Anaszewski
  2015-11-16 14:09   ` Rob Herring
  1 sibling, 1 reply; 6+ messages in thread
From: Jacek Anaszewski @ 2015-11-16 10:00 UTC (permalink / raw)
  To: Ingi Kim, robh+dt; +Cc: linux-leds, linux-kernel

Hi Ingi, Rob,

With this patch we will be leaking of_node when parsing succeeds.
I think that "return 0" should be removed. I can remove it and apply,
provided that Rob's ack is still in force with this. Rob?

Best Regards,
Jacek Anaszewski

On 11/10/2015 04:00 AM, Ingi Kim wrote:
> The refcount of device_node increases after of_node_get() is called.
> So, a break out of the loop requires of_node_put().
>
> This patch adds missing of_node_put() when loop breaks.
>
> Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>
> ---
>   drivers/leds/leds-ktd2692.c | 11 ++++++++---
>   1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
> index feca07b..dbf37ce 100644
> --- a/drivers/leds/leds-ktd2692.c
> +++ b/drivers/leds/leds-ktd2692.c
> @@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context *led, struct device *dev,
>   				   &cfg->movie_max_microamp);
>   	if (ret) {
>   		dev_err(dev, "failed to parse led-max-microamp\n");
> -		return ret;
> +		goto err_parse_dt;
>   	}
>
>   	ret = of_property_read_u32(child_node, "flash-max-microamp",
>   				   &cfg->flash_max_microamp);
>   	if (ret) {
>   		dev_err(dev, "failed to parse flash-max-microamp\n");
> -		return ret;
> +		goto err_parse_dt;
>   	}
>
>   	ret = of_property_read_u32(child_node, "flash-max-timeout-us",
>   				   &cfg->flash_max_timeout);
> -	if (ret)
> +	if (ret) {
>   		dev_err(dev, "failed to parse flash-max-timeout-us\n");
> +		goto err_parse_dt;
> +	}
> +
> +	return 0;
>
> +err_parse_dt:
>   	of_node_put(child_node);
>   	return ret;
>   }
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: ktd2692: Add missing of_node_put
  2015-11-16 10:00 ` Jacek Anaszewski
@ 2015-11-16 14:09   ` Rob Herring
  2015-11-16 14:30     ` Jacek Anaszewski
  0 siblings, 1 reply; 6+ messages in thread
From: Rob Herring @ 2015-11-16 14:09 UTC (permalink / raw)
  To: Jacek Anaszewski; +Cc: Ingi Kim, Linux LED Subsystem, linux-kernel

On Mon, Nov 16, 2015 at 4:00 AM, Jacek Anaszewski
<j.anaszewski@samsung.com> wrote:
> Hi Ingi, Rob,
>
> With this patch we will be leaking of_node when parsing succeeds.
> I think that "return 0" should be removed. I can remove it and apply,
> provided that Rob's ack is still in force with this. Rob?

Okay.

Rob

>
> Best Regards,
> Jacek Anaszewski
>
>
> On 11/10/2015 04:00 AM, Ingi Kim wrote:
>>
>> The refcount of device_node increases after of_node_get() is called.
>> So, a break out of the loop requires of_node_put().
>>
>> This patch adds missing of_node_put() when loop breaks.
>>
>> Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>
>> ---
>>   drivers/leds/leds-ktd2692.c | 11 ++++++++---
>>   1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
>> index feca07b..dbf37ce 100644
>> --- a/drivers/leds/leds-ktd2692.c
>> +++ b/drivers/leds/leds-ktd2692.c
>> @@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context
>> *led, struct device *dev,
>>                                    &cfg->movie_max_microamp);
>>         if (ret) {
>>                 dev_err(dev, "failed to parse led-max-microamp\n");
>> -               return ret;
>> +               goto err_parse_dt;
>>         }
>>
>>         ret = of_property_read_u32(child_node, "flash-max-microamp",
>>                                    &cfg->flash_max_microamp);
>>         if (ret) {
>>                 dev_err(dev, "failed to parse flash-max-microamp\n");
>> -               return ret;
>> +               goto err_parse_dt;
>>         }
>>
>>         ret = of_property_read_u32(child_node, "flash-max-timeout-us",
>>                                    &cfg->flash_max_timeout);
>> -       if (ret)
>> +       if (ret) {
>>                 dev_err(dev, "failed to parse flash-max-timeout-us\n");
>> +               goto err_parse_dt;
>> +       }
>> +
>> +       return 0;
>>
>> +err_parse_dt:
>>         of_node_put(child_node);
>>         return ret;
>>   }
>>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: ktd2692: Add missing of_node_put
  2015-11-16 14:09   ` Rob Herring
@ 2015-11-16 14:30     ` Jacek Anaszewski
  2015-11-17  0:05       ` Ingi Kim
  0 siblings, 1 reply; 6+ messages in thread
From: Jacek Anaszewski @ 2015-11-16 14:30 UTC (permalink / raw)
  To: Rob Herring; +Cc: Ingi Kim, Linux LED Subsystem, linux-kernel

On 11/16/2015 03:09 PM, Rob Herring wrote:
> On Mon, Nov 16, 2015 at 4:00 AM, Jacek Anaszewski
> <j.anaszewski@samsung.com> wrote:
>> Hi Ingi, Rob,
>>
>> With this patch we will be leaking of_node when parsing succeeds.
>> I think that "return 0" should be removed. I can remove it and apply,
>> provided that Rob's ack is still in force with this. Rob?
>
> Okay.

Removed discussed line and applied, thanks.

>> On 11/10/2015 04:00 AM, Ingi Kim wrote:
>>>
>>> The refcount of device_node increases after of_node_get() is called.
>>> So, a break out of the loop requires of_node_put().
>>>
>>> This patch adds missing of_node_put() when loop breaks.
>>>
>>> Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>
>>> ---
>>>    drivers/leds/leds-ktd2692.c | 11 ++++++++---
>>>    1 file changed, 8 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
>>> index feca07b..dbf37ce 100644
>>> --- a/drivers/leds/leds-ktd2692.c
>>> +++ b/drivers/leds/leds-ktd2692.c
>>> @@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context
>>> *led, struct device *dev,
>>>                                     &cfg->movie_max_microamp);
>>>          if (ret) {
>>>                  dev_err(dev, "failed to parse led-max-microamp\n");
>>> -               return ret;
>>> +               goto err_parse_dt;
>>>          }
>>>
>>>          ret = of_property_read_u32(child_node, "flash-max-microamp",
>>>                                     &cfg->flash_max_microamp);
>>>          if (ret) {
>>>                  dev_err(dev, "failed to parse flash-max-microamp\n");
>>> -               return ret;
>>> +               goto err_parse_dt;
>>>          }
>>>
>>>          ret = of_property_read_u32(child_node, "flash-max-timeout-us",
>>>                                     &cfg->flash_max_timeout);
>>> -       if (ret)
>>> +       if (ret) {
>>>                  dev_err(dev, "failed to parse flash-max-timeout-us\n");
>>> +               goto err_parse_dt;
>>> +       }
>>> +
>>> +       return 0;
>>>
>>> +err_parse_dt:
>>>          of_node_put(child_node);
>>>          return ret;
>>>    }
>>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>


-- 
Best Regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: ktd2692: Add missing of_node_put
  2015-11-16 14:30     ` Jacek Anaszewski
@ 2015-11-17  0:05       ` Ingi Kim
  0 siblings, 0 replies; 6+ messages in thread
From: Ingi Kim @ 2015-11-17  0:05 UTC (permalink / raw)
  To: Jacek Anaszewski, Rob Herring; +Cc: Linux LED Subsystem, linux-kernel

Hi Rob, Jacek

You're right,
It is better to remove "return 0"

Thanks for the review.

On 2015년 11월 16일 23:30, Jacek Anaszewski wrote:
> On 11/16/2015 03:09 PM, Rob Herring wrote:
>> On Mon, Nov 16, 2015 at 4:00 AM, Jacek Anaszewski
>> <j.anaszewski@samsung.com> wrote:
>>> Hi Ingi, Rob,
>>>
>>> With this patch we will be leaking of_node when parsing succeeds.
>>> I think that "return 0" should be removed. I can remove it and apply,
>>> provided that Rob's ack is still in force with this. Rob?
>>
>> Okay.
> 
> Removed discussed line and applied, thanks.
> 
>>> On 11/10/2015 04:00 AM, Ingi Kim wrote:
>>>>
>>>> The refcount of device_node increases after of_node_get() is called.
>>>> So, a break out of the loop requires of_node_put().
>>>>
>>>> This patch adds missing of_node_put() when loop breaks.
>>>>
>>>> Signed-off-by: Ingi Kim <ingi2.kim@samsung.com>
>>>> ---
>>>>    drivers/leds/leds-ktd2692.c | 11 ++++++++---
>>>>    1 file changed, 8 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/leds/leds-ktd2692.c b/drivers/leds/leds-ktd2692.c
>>>> index feca07b..dbf37ce 100644
>>>> --- a/drivers/leds/leds-ktd2692.c
>>>> +++ b/drivers/leds/leds-ktd2692.c
>>>> @@ -332,21 +332,26 @@ static int ktd2692_parse_dt(struct ktd2692_context
>>>> *led, struct device *dev,
>>>>                                     &cfg->movie_max_microamp);
>>>>          if (ret) {
>>>>                  dev_err(dev, "failed to parse led-max-microamp\n");
>>>> -               return ret;
>>>> +               goto err_parse_dt;
>>>>          }
>>>>
>>>>          ret = of_property_read_u32(child_node, "flash-max-microamp",
>>>>                                     &cfg->flash_max_microamp);
>>>>          if (ret) {
>>>>                  dev_err(dev, "failed to parse flash-max-microamp\n");
>>>> -               return ret;
>>>> +               goto err_parse_dt;
>>>>          }
>>>>
>>>>          ret = of_property_read_u32(child_node, "flash-max-timeout-us",
>>>>                                     &cfg->flash_max_timeout);
>>>> -       if (ret)
>>>> +       if (ret) {
>>>>                  dev_err(dev, "failed to parse flash-max-timeout-us\n");
>>>> +               goto err_parse_dt;
>>>> +       }
>>>> +
>>>> +       return 0;
>>>>
>>>> +err_parse_dt:
>>>>          of_node_put(child_node);
>>>>          return ret;
>>>>    }
>>>>
>>>
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>>
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-11-17  0:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-10  3:00 [PATCH] leds: ktd2692: Add missing of_node_put Ingi Kim
2015-11-10 15:32 ` Rob Herring
2015-11-16 10:00 ` Jacek Anaszewski
2015-11-16 14:09   ` Rob Herring
2015-11-16 14:30     ` Jacek Anaszewski
2015-11-17  0:05       ` Ingi Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.