2019-07-09 17:30:37

by Nishka Dasgupta

[permalink] [raw]
Subject: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

Each iteration of for_each_available_child_of_node puts the previous
node, but in the case of a goto from the middle of the loop, there is
no put, thus causing a memory leak. Hence add an of_node_put before the
goto.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <[email protected]>
---
drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c
index 86887c9a349a..bd80d4c10ec2 100644
--- a/drivers/mailbox/zynqmp-ipi-mailbox.c
+++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
@@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct platform_device *pdev)
if (ret) {
dev_err(dev, "failed to probe subdev.\n");
ret = -EINVAL;
+ of_node_put(nc);
goto free_mbox_dev;
}
mbox++;
--
2.19.1


2019-07-31 08:42:34

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

On 09. 07. 19 19:28, Nishka Dasgupta wrote:
> Each iteration of for_each_available_child_of_node puts the previous
> node, but in the case of a goto from the middle of the loop, there is
> no put, thus causing a memory leak. Hence add an of_node_put before the
> goto.
> Issue found with Coccinelle.
>
> Signed-off-by: Nishka Dasgupta <[email protected]>
> ---
> drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c
> index 86887c9a349a..bd80d4c10ec2 100644
> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
> @@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct platform_device *pdev)
> if (ret) {
> dev_err(dev, "failed to probe subdev.\n");
> ret = -EINVAL;
> + of_node_put(nc);
> goto free_mbox_dev;
> }
> mbox++;
>

Patch is good but when you are saying that this was found by Coccinelle
then it should be added as script to kernel to detect it.

Thanks,
Michal

2019-07-31 13:08:18

by Nishka Dasgupta

[permalink] [raw]
Subject: Re: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

On 31/07/19 2:01 PM, Michal Simek wrote:
> On 09. 07. 19 19:28, Nishka Dasgupta wrote:
>> Each iteration of for_each_available_child_of_node puts the previous
>> node, but in the case of a goto from the middle of the loop, there is
>> no put, thus causing a memory leak. Hence add an of_node_put before the
>> goto.
>> Issue found with Coccinelle.
>>
>> Signed-off-by: Nishka Dasgupta <[email protected]>
>> ---
>> drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c
>> index 86887c9a349a..bd80d4c10ec2 100644
>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
>> @@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct platform_device *pdev)
>> if (ret) {
>> dev_err(dev, "failed to probe subdev.\n");
>> ret = -EINVAL;
>> + of_node_put(nc);
>> goto free_mbox_dev;
>> }
>> mbox++;
>>
>
> Patch is good but when you are saying that this was found by Coccinelle
> then it should be added as script to kernel to detect it.

This particular patch was suggested by a script I did not write myself;
someone else wrote it and sent it to me. How should I proceed in this case?

Thanking you,
Nishka

> Thanks,
> Michal
>

2019-07-31 15:21:45

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

On 31. 07. 19 15:06, Nishka Dasgupta wrote:
> On 31/07/19 2:01 PM, Michal Simek wrote:
>> On 09. 07. 19 19:28, Nishka Dasgupta wrote:
>>> Each iteration of for_each_available_child_of_node puts the previous
>>> node, but in the case of a goto from the middle of the loop, there is
>>> no put, thus causing a memory leak. Hence add an of_node_put before the
>>> goto.
>>> Issue found with Coccinelle.
>>>
>>> Signed-off-by: Nishka Dasgupta <[email protected]>
>>> ---
>>>   drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>> b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>> index 86887c9a349a..bd80d4c10ec2 100644
>>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>> @@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct
>>> platform_device *pdev)
>>>           if (ret) {
>>>               dev_err(dev, "failed to probe subdev.\n");
>>>               ret = -EINVAL;
>>> +            of_node_put(nc);
>>>               goto free_mbox_dev;
>>>           }
>>>           mbox++;
>>>
>>
>> Patch is good but when you are saying that this was found by Coccinelle
>> then it should be added as script to kernel to detect it.
>
> This particular patch was suggested by a script I did not write myself;
> someone else wrote it and sent it to me. How should I proceed in this case?

You can ask him to submit it to kernel.
Or you can take it, keep his authorship and send it to:

./scripts/get_maintainer.pl -f scripts/coccinelle/
Julia Lawall <[email protected]> (supporter:COCCINELLE/Semantic
Patches (SmPL))
Gilles Muller <[email protected]> (supporter:COCCINELLE/Semantic
Patches (SmPL))
Nicolas Palix <[email protected]> (supporter:COCCINELLE/Semantic
Patches (SmPL))
Michal Marek <[email protected]> (supporter:COCCINELLE/Semantic
Patches (SmPL))
[email protected] (moderated list:COCCINELLE/Semantic Patches (SmPL))
[email protected] (open list)

Thanks,
Michal

2019-08-02 10:46:54

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

On 02. 08. 19 6:59, Nishka Dasgupta wrote:
> On 31/07/19 7:51 PM, Michal Simek wrote:
>> On 31. 07. 19 15:06, Nishka Dasgupta wrote:
>>> On 31/07/19 2:01 PM, Michal Simek wrote:
>>>> On 09. 07. 19 19:28, Nishka Dasgupta wrote:
>>>>> Each iteration of for_each_available_child_of_node puts the previous
>>>>> node, but in the case of a goto from the middle of the loop, there is
>>>>> no put, thus causing a memory leak. Hence add an of_node_put before
>>>>> the
>>>>> goto.
>>>>> Issue found with Coccinelle.
>>>>>
>>>>> Signed-off-by: Nishka Dasgupta <[email protected]>
>>>>> ---
>>>>>    drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
>>>>>    1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>>> b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>>> index 86887c9a349a..bd80d4c10ec2 100644
>>>>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>>> @@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct
>>>>> platform_device *pdev)
>>>>>            if (ret) {
>>>>>                dev_err(dev, "failed to probe subdev.\n");
>>>>>                ret = -EINVAL;
>>>>> +            of_node_put(nc);
>>>>>                goto free_mbox_dev;
>>>>>            }
>>>>>            mbox++;
>>>>>
>>>>
>>>> Patch is good but when you are saying that this was found by Coccinelle
>>>> then it should be added as script to kernel to detect it.
>>>
>>> This particular patch was suggested by a script I did not write myself;
>>> someone else wrote it and sent it to me. How should I proceed in this
>>> case?
>>
>> You can ask him to submit it to kernel.
>> Or you can take it, keep his authorship and send it to:
>
> I have asked her to submit this script, thank you. Will I need to
> resubmit this patch, however?

I will let Jassi to decide.

Thanks,
Michal

2019-08-02 10:47:47

by Nishka Dasgupta

[permalink] [raw]
Subject: Re: [PATCH] mailbox: zynqmp-ipi-mailbox: Add of_node_put() before goto

On 31/07/19 7:51 PM, Michal Simek wrote:
> On 31. 07. 19 15:06, Nishka Dasgupta wrote:
>> On 31/07/19 2:01 PM, Michal Simek wrote:
>>> On 09. 07. 19 19:28, Nishka Dasgupta wrote:
>>>> Each iteration of for_each_available_child_of_node puts the previous
>>>> node, but in the case of a goto from the middle of the loop, there is
>>>> no put, thus causing a memory leak. Hence add an of_node_put before the
>>>> goto.
>>>> Issue found with Coccinelle.
>>>>
>>>> Signed-off-by: Nishka Dasgupta <[email protected]>
>>>> ---
>>>>   drivers/mailbox/zynqmp-ipi-mailbox.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>> b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>> index 86887c9a349a..bd80d4c10ec2 100644
>>>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
>>>> @@ -661,6 +661,7 @@ static int zynqmp_ipi_probe(struct
>>>> platform_device *pdev)
>>>>           if (ret) {
>>>>               dev_err(dev, "failed to probe subdev.\n");
>>>>               ret = -EINVAL;
>>>> +            of_node_put(nc);
>>>>               goto free_mbox_dev;
>>>>           }
>>>>           mbox++;
>>>>
>>>
>>> Patch is good but when you are saying that this was found by Coccinelle
>>> then it should be added as script to kernel to detect it.
>>
>> This particular patch was suggested by a script I did not write myself;
>> someone else wrote it and sent it to me. How should I proceed in this case?
>
> You can ask him to submit it to kernel.
> Or you can take it, keep his authorship and send it to:

I have asked her to submit this script, thank you. Will I need to
resubmit this patch, however?

Regards,
Nishka

> ./scripts/get_maintainer.pl -f scripts/coccinelle/
> Julia Lawall <[email protected]> (supporter:COCCINELLE/Semantic
> Patches (SmPL))
> Gilles Muller <[email protected]> (supporter:COCCINELLE/Semantic
> Patches (SmPL))
> Nicolas Palix <[email protected]> (supporter:COCCINELLE/Semantic
> Patches (SmPL))
> Michal Marek <[email protected]> (supporter:COCCINELLE/Semantic
> Patches (SmPL))
> [email protected] (moderated list:COCCINELLE/Semantic Patches (SmPL))
> [email protected] (open list)
>
> Thanks,
> Michal
>