* [PATCH] pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops
@ 2023-06-06 7:02 Lu Hongfei
2023-06-09 7:25 ` Linus Walleij
[not found] ` <fca44dcf-e632-fed6-aee9-03a5b0c6b1d9@web.de>
0 siblings, 2 replies; 4+ messages in thread
From: Lu Hongfei @ 2023-06-06 7:02 UTC (permalink / raw)
To: Chester Lin, NXP S32 Linux Team, Linus Walleij,
open list:PIN CONTROLLER - NXP S32, open list
Cc: opensource.kernel, luhongfei
Ensure child node references are decremented properly in the error path.
Signed-off-by: Lu Hongfei <luhongfei@vivo.com>
---
drivers/pinctrl/nxp/pinctrl-s32cc.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/nxp/pinctrl-s32cc.c b/drivers/pinctrl/nxp/pinctrl-s32cc.c
index 41e024160f36..3ae043b27463
--- a/drivers/pinctrl/nxp/pinctrl-s32cc.c
+++ b/drivers/pinctrl/nxp/pinctrl-s32cc.c
@@ -279,8 +279,10 @@ static int s32_dt_node_to_map(struct pinctrl_dev *pctldev,
ret = s32_dt_group_node_to_map(pctldev, np, map,
&reserved_maps, num_maps,
np_config->name);
- if (ret < 0)
+ if (ret < 0) {
+ of_node_put(np);
break;
+ }
}
if (ret)
@@ -812,8 +814,10 @@ static int s32_pinctrl_parse_functions(struct device_node *np,
groups[i] = child->name;
grp = &info->groups[info->grp_index++];
ret = s32_pinctrl_parse_groups(child, grp, info);
- if (ret)
+ if (ret) {
+ of_node_put(child);
return ret;
+ }
i++;
}
@@ -896,8 +900,10 @@ static int s32_pinctrl_probe_dt(struct platform_device *pdev,
i = 0;
for_each_child_of_node(np, child) {
ret = s32_pinctrl_parse_functions(child, info, i++);
- if (ret)
+ if (ret) {
+ of_node_put(child);
return ret;
+ }
}
return 0;
--
2.39.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops
2023-06-06 7:02 [PATCH] pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops Lu Hongfei
@ 2023-06-09 7:25 ` Linus Walleij
[not found] ` <fca44dcf-e632-fed6-aee9-03a5b0c6b1d9@web.de>
1 sibling, 0 replies; 4+ messages in thread
From: Linus Walleij @ 2023-06-09 7:25 UTC (permalink / raw)
To: Lu Hongfei
Cc: Chester Lin, NXP S32 Linux Team,
open list:PIN CONTROLLER - NXP S32, open list, opensource.kernel
On Tue, Jun 6, 2023 at 9:02 AM Lu Hongfei <luhongfei@vivo.com> wrote:
> Ensure child node references are decremented properly in the error path.
>
> Signed-off-by: Lu Hongfei <luhongfei@vivo.com>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops
[not found] ` <fca44dcf-e632-fed6-aee9-03a5b0c6b1d9@web.de>
@ 2023-06-13 6:41 ` Chester Lin
[not found] ` <b6c1500b-c901-00c7-e1be-1fa0088972a3@web.de>
0 siblings, 1 reply; 4+ messages in thread
From: Chester Lin @ 2023-06-13 6:41 UTC (permalink / raw)
To: Markus Elfring
Cc: kernel-janitors, s32, linux-gpio, opensource.kernel,
Linus Walleij, Lu Hongfei, LKML, cocci
On Mon, Jun 12, 2023 at 04:01:00PM +0200, Markus Elfring wrote:
> > Ensure child node references are decremented properly in the error path.
> …
> > +++ b/drivers/pinctrl/nxp/pinctrl-s32cc.c
> > @@ -279,8 +279,10 @@ static int s32_dt_node_to_map(struct pinctrl_dev *pctldev,
> > ret = s32_dt_group_node_to_map(pctldev, np, map,
> > &reserved_maps, num_maps,
> > np_config->name);
> > - if (ret < 0)
> > + if (ret < 0) {
> > + of_node_put(np);
> > break;
> > + }
> > }
> >
> > if (ret)
>
> May the same error predicate be applied at two places here?
>
I think these two error predicates can be combined together in another patch.
Regards,
Chester
> Regards,
> Markus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] pinctrl: nxp: Adjust error predicates for improved exception handling in s32_dt_node_to_map()?
[not found] ` <b6c1500b-c901-00c7-e1be-1fa0088972a3@web.de>
@ 2023-06-13 9:27 ` Chester Lin
0 siblings, 0 replies; 4+ messages in thread
From: Chester Lin @ 2023-06-13 9:27 UTC (permalink / raw)
To: Markus Elfring
Cc: kernel-janitors, s32, linux-gpio, opensource.kernel,
Linus Walleij, Lu Hongfei, LKML, cocci
On Tue, Jun 13, 2023 at 11:15:22AM +0200, Markus Elfring wrote:
> >>> Ensure child node references are decremented properly in the error path.
> >> …
> >>> +++ b/drivers/pinctrl/nxp/pinctrl-s32cc.c
> >>> @@ -279,8 +279,10 @@ static int s32_dt_node_to_map(struct pinctrl_dev *pctldev,
> >>> ret = s32_dt_group_node_to_map(pctldev, np, map,
> >>> &reserved_maps, num_maps,
> >>> np_config->name);
> >>> - if (ret < 0)
> >>> + if (ret < 0) {
> >>> + of_node_put(np);
> >>> break;
> >>> + }
> >>> }
> >>>
> >>> if (ret)
> >>
> >> May the same error predicate be applied at two places here?
> >>
> >
> > I think these two error predicates can be combined together in another patch.
>
> Are you going to reduce such error predicates so that exception handling
> can be improved another bit?
>
Yes, I am. There will be a patch to improve these error predicates. Thanks for
your suggestion.
Regards,
Chester
> Regards,
> Markus
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-06-13 9:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-06 7:02 [PATCH] pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops Lu Hongfei
2023-06-09 7:25 ` Linus Walleij
[not found] ` <fca44dcf-e632-fed6-aee9-03a5b0c6b1d9@web.de>
2023-06-13 6:41 ` Chester Lin
[not found] ` <b6c1500b-c901-00c7-e1be-1fa0088972a3@web.de>
2023-06-13 9:27 ` [PATCH] pinctrl: nxp: Adjust error predicates for improved exception handling in s32_dt_node_to_map()? Chester Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).