Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1296073 > unrolled thread
| Started by | Julia Lawall <Julia.Lawall@lip6.fr> |
|---|---|
| First post | 2015-12-21 18:00 +0100 |
| Last post | 2015-12-22 14:30 +0100 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 3/5] pinctrl: sh-pfc: add missing of_node_put Julia Lawall <Julia.Lawall@lip6.fr> - 2015-12-21 18:00 +0100
Re: [PATCH 3/5] pinctrl: sh-pfc: add missing of_node_put Laurent Pinchart <laurent.pinchart@ideasonboard.com> - 2015-12-21 21:50 +0100
Re: [PATCH 3/5] pinctrl: sh-pfc: add missing of_node_put Linus Walleij <linus.walleij@linaro.org> - 2015-12-22 13:50 +0100
Re: [PATCH 3/5] pinctrl: sh-pfc: add missing of_node_put Geert Uytterhoeven <geert@linux-m68k.org> - 2015-12-22 14:30 +0100
| From | Julia Lawall <Julia.Lawall@lip6.fr> |
|---|---|
| Date | 2015-12-21 18:00 +0100 |
| Subject | [PATCH 3/5] pinctrl: sh-pfc: add missing of_node_put |
| Message-ID | <qIbYu-zb-5@gated-at.bofh.it> |
for_each_child_of_node performs an of_node_get on each iteration, so a
goto out of the loop requires an of_node_put.
A simplified version of the semantic patch that fixes this problem is as
follows (http://coccinelle.lip6.fr):
// <smpl>
@@
local idexpression n;
expression e,e1;
identifier l;
@@
for_each_child_of_node(e1,n) {
...
(
of_node_put(n);
|
e = n
|
return n;
|
+ of_node_put(n);
? goto l;
)
...
}
l: ... when != n
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
---
drivers/pinctrl/sh-pfc/pinctrl.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c
index 863c3e3..87b0a59 100644
--- a/drivers/pinctrl/sh-pfc/pinctrl.c
+++ b/drivers/pinctrl/sh-pfc/pinctrl.c
@@ -273,8 +273,10 @@ static int sh_pfc_dt_node_to_map(struct pinctrl_dev *pctldev,
for_each_child_of_node(np, child) {
ret = sh_pfc_dt_subnode_to_map(pctldev, child, map, num_maps,
&index);
- if (ret < 0)
+ if (ret < 0) {
+ of_node_put(child);
goto done;
+ }
}
/* If no mapping has been found in child nodes try the config node. */
--
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/
[toc] | [next] | [standalone]
| From | Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
|---|---|
| Date | 2015-12-21 21:50 +0100 |
| Message-ID | <qIfz4-2SZ-5@gated-at.bofh.it> |
| In reply to | #1296073 |
Hi Julia,
Thank you for the patch.
On Monday 21 December 2015 17:39:46 Julia Lawall wrote:
> for_each_child_of_node performs an of_node_get on each iteration, so a
> goto out of the loop requires an of_node_put.
>
> A simplified version of the semantic patch that fixes this problem is as
> follows (http://coccinelle.lip6.fr):
>
> // <smpl>
> @@
> local idexpression n;
> expression e,e1;
> identifier l;
> @@
>
> for_each_child_of_node(e1,n) {
> ...
> (
> of_node_put(n);
>
> e = n
>
> return n;
>
> + of_node_put(n);
> ? goto l;
> )
> ...
> }
> l: ... when != n
> // </smpl>
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/pinctrl/sh-pfc/pinctrl.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c
> b/drivers/pinctrl/sh-pfc/pinctrl.c index 863c3e3..87b0a59 100644
> --- a/drivers/pinctrl/sh-pfc/pinctrl.c
> +++ b/drivers/pinctrl/sh-pfc/pinctrl.c
> @@ -273,8 +273,10 @@ static int sh_pfc_dt_node_to_map(struct pinctrl_dev
> *pctldev, for_each_child_of_node(np, child) {
> ret = sh_pfc_dt_subnode_to_map(pctldev, child, map, num_maps,
> &index);
> - if (ret < 0)
> + if (ret < 0) {
> + of_node_put(child);
> goto done;
> + }
> }
>
> /* If no mapping has been found in child nodes try the config node. */
--
Regards,
Laurent Pinchart
--
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/
[toc] | [prev] | [next] | [standalone]
| From | Linus Walleij <linus.walleij@linaro.org> |
|---|---|
| Date | 2015-12-22 13:50 +0100 |
| Message-ID | <qIuy6-41F-11@gated-at.bofh.it> |
| In reply to | #1296073 |
On Mon, Dec 21, 2015 at 5:39 PM, Julia Lawall <Julia.Lawall@lip6.fr> wrote: > for_each_child_of_node performs an of_node_get on each iteration, so a > goto out of the loop requires an of_node_put. > > A simplified version of the semantic patch that fixes this problem is as > follows (http://coccinelle.lip6.fr): Patch applied with Laurent's ACK. Geert: since I don't think you're gonna send me more pull requests before the merge window I went ahead and applied this directly, OK? Yours, Linus Walleij -- 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/
[toc] | [prev] | [next] | [standalone]
| From | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| Date | 2015-12-22 14:30 +0100 |
| Message-ID | <qIvaN-4uK-1@gated-at.bofh.it> |
| In reply to | #1296768 |
Hi Linus,
On Tue, Dec 22, 2015 at 1:47 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> On Mon, Dec 21, 2015 at 5:39 PM, Julia Lawall <Julia.Lawall@lip6.fr> wrote:
>> for_each_child_of_node performs an of_node_get on each iteration, so a
>> goto out of the loop requires an of_node_put.
>>
>> A simplified version of the semantic patch that fixes this problem is as
>> follows (http://coccinelle.lip6.fr):
>
> Patch applied with Laurent's ACK.
>
> Geert: since I don't think you're gonna send me more pull
> requests before the merge window I went ahead and applied
> this directly, OK?
You're reading my mind ;-)
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
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/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web