2019-02-20 03:25:28

by Himadri Pandya

[permalink] [raw]
Subject: [PATCH] net: dsa: add missing of_node_put

Decrement the reference count on port while returning out of the loop.

Signed-off-by: Himadri Pandya <[email protected]>
---
net/dsa/dsa2.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index a1917025e155..396e7433dd8f 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -624,19 +624,25 @@ static int dsa_switch_parse_ports_of(struct dsa_switch *ds,
for_each_available_child_of_node(ports, port) {
err = of_property_read_u32(port, "reg", &reg);
if (err)
- return err;
+ goto put_port;

- if (reg >= ds->num_ports)
- return -EINVAL;
+ if (reg >= ds->num_ports) {
+ err = -EINVAL;
+ goto put_port;
+ }

dp = &ds->ports[reg];

err = dsa_port_parse_of(dp, port);
if (err)
- return err;
+ goto put_port;
}

return 0;
+
+put_port:
+ of_node_put(port);
+ return err;
}

static int dsa_switch_parse_member_of(struct dsa_switch *ds,
--
2.17.1



2019-02-20 04:03:00

by Vaishali Thakkar

[permalink] [raw]
Subject: Re: [Outreachy kernel] [PATCH] net: dsa: add missing of_node_put

On Wed, Feb 20, 2019 at 8:54 AM Himadri Pandya <[email protected]> wrote:
>

Hi Himadri,

Thanks for the patch!

For the scope of Outreachy, we prefer that you send patches in staging
directory as Greg makes sure to pick them during the application
period. Of course, you're very much encouraged to contribute to other
subsystems as well but there patches are mainly picked up based on
maintainer's cycle which may or may not be picked up for linux-next when
selection of interns happens.

I hope that makes sense.

> Decrement the reference count on port while returning out of the loop.

How did you find out about this issue? I think it would be good to
give credit to tool in commit log if the issue is identified or produced
by tool. [In this case, I assume it's Coccinelle]

> Signed-off-by: Himadri Pandya <[email protected]>
> ---
> net/dsa/dsa2.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
> index a1917025e155..396e7433dd8f 100644
> --- a/net/dsa/dsa2.c
> +++ b/net/dsa/dsa2.c
> @@ -624,19 +624,25 @@ static int dsa_switch_parse_ports_of(struct dsa_switch *ds,
> for_each_available_child_of_node(ports, port) {
> err = of_property_read_u32(port, "reg", &reg);
> if (err)
> - return err;
> + goto put_port;
>
> - if (reg >= ds->num_ports)
> - return -EINVAL;
> + if (reg >= ds->num_ports) {
> + err = -EINVAL;
> + goto put_port;
> + }
>
> dp = &ds->ports[reg];
>
> err = dsa_port_parse_of(dp, port);
> if (err)
> - return err;
> + goto put_port;
> }
>
> return 0;
> +
> +put_port:
> + of_node_put(port);
> + return err;
> }
>
> static int dsa_switch_parse_member_of(struct dsa_switch *ds,
> --
> 2.17.1
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/20190220032432.2878-1-himadri18.07%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.

2019-02-20 09:12:02

by Himadri Pandya

[permalink] [raw]
Subject: Re: [Outreachy kernel] [PATCH] net: dsa: add missing of_node_put


On 20/02/19 9:23 AM, Vaishali Thakkar wrote:
> On Wed, Feb 20, 2019 at 8:54 AM Himadri Pandya <[email protected]> wrote:
> Hi Himadri,
>
> Thanks for the patch!
>
> For the scope of Outreachy, we prefer that you send patches in staging
> directory as Greg makes sure to pick them during the application
> period. Of course, you're very much encouraged to contribute to other
> subsystems as well but there patches are mainly picked up based on
> maintainer's cycle which may or may not be picked up for linux-next when
> selection of interns happens.
>
> I hope that makes sense.
Understood. Thank you for letting me know that.
>> Decrement the reference count on port while returning out of the loop.
> How did you find out about this issue?
I believe that Julia Lawall has been working on this for a while. After
doing some cleanup patches, I'm trying to continue the work with her help.
> I think it would be good to
> give credit to tool in commit log if the issue is identified or produced
> by tool. [In this case, I assume it's Coccinelle]

Yes, it was identified by Coccinelle and I should include it in the
commit message. Thank you for the remark. I'll revise the patch accordingly.

- Himadri


>> Signed-off-by: Himadri Pandya <[email protected]>
>> ---
>> net/dsa/dsa2.c | 14 ++++++++++----
>> 1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
>> index a1917025e155..396e7433dd8f 100644
>> --- a/net/dsa/dsa2.c
>> +++ b/net/dsa/dsa2.c
>> @@ -624,19 +624,25 @@ static int dsa_switch_parse_ports_of(struct dsa_switch *ds,
>> for_each_available_child_of_node(ports, port) {
>> err = of_property_read_u32(port, "reg", &reg);
>> if (err)
>> - return err;
>> + goto put_port;
>>
>> - if (reg >= ds->num_ports)
>> - return -EINVAL;
>> + if (reg >= ds->num_ports) {
>> + err = -EINVAL;
>> + goto put_port;
>> + }
>>
>> dp = &ds->ports[reg];
>>
>> err = dsa_port_parse_of(dp, port);
>> if (err)
>> - return err;
>> + goto put_port;
>> }
>>
>> return 0;
>> +
>> +put_port:
>> + of_node_put(port);
>> + return err;
>> }
>>
>> static int dsa_switch_parse_member_of(struct dsa_switch *ds,
>> --
>> 2.17.1
>>
>> --
>> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/20190220032432.2878-1-himadri18.07%40gmail.com.
>> For more options, visit https://groups.google.com/d/optout.

2019-02-20 15:03:19

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH] net: dsa: add missing of_node_put

On Wed, Feb 20, 2019 at 08:54:32AM +0530, Himadri Pandya wrote:
> Decrement the reference count on port while returning out of the loop.
>
> Signed-off-by: Himadri Pandya <[email protected]>

Hi Himadri

Thanks for the patch. The code changes themselves look good.

Netdev has a few additional processes for submitting patches. Please
take a look at

https://www.kernel.org/doc/Documentation/networking/netdev-FAQ.txt

Please base this patch on net-next.

Thanks
Andrew