From: Krzysztof Kozlowski <k.kozlowski@samsung.com> To: Julia Lawall <Julia.Lawall@lip6.fr> Cc: Liam Girdwood <lgirdwood@gmail.com>, kernel-janitors@vger.kernel.org, Mark Brown <broonie@kernel.org>, linux-kernel@vger.kernel.org, Russell King - ARM Linux <linux@arm.linux.org.uk>, Thomas Petazzoni <thomas.petazzoni@free-electrons.com>, Andrew Lunn <andrew@lunn.ch>, Bjorn Helgaas <bhelgaas@google.com>, Jason Cooper <jason@lakedaemon.net> Subject: Re: [PATCH 4/5] regulator: of: add missing of_node_put Date: Mon, 12 Oct 2015 09:33:59 +0900 [thread overview] Message-ID: <CAJKOXPc7b4H8qFLRLR2jecA74BPJ-SNfY-GtfTVf=mfzrEeCtw@mail.gmail.com> (raw) In-Reply-To: <1444480254-14399-5-git-send-email-Julia.Lawall@lip6.fr> 2015-10-10 21:30 GMT+09:00 Julia Lawall <Julia.Lawall@lip6.fr>: > > for_each_child_of_node performs an of_node_get on each iteration, so > a break out of the loop requires an of_node_put. > > The semantic patch that fixes this problem is as follows > (http://coccinelle.lip6.fr): > > // <smpl> > @@ > expression root,e; > local idexpression child; > @@ > > for_each_child_of_node(root, child) { > ... when != of_node_put(child) > when != e = child > ( > return child; > | > + of_node_put(child); > ? return ...; > ) > ... > } > // </smpl> > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > > --- > drivers/regulator/of_regulator.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c > index 499e437..f9d77b4 100644 > --- a/drivers/regulator/of_regulator.c > +++ b/drivers/regulator/of_regulator.c > @@ -274,6 +274,7 @@ int of_regulator_match(struct device *dev, struct device_node *node, > dev_err(dev, > "failed to parse DT for regulator %s\n", > child->name); > + of_node_put(child); This looks good. > return -EINVAL; > } > match->of_node = of_node_get(child); But what about 'break' few lines below? The reference from last of_get_next_child() should be also dropped because... or we should remove this of_node_get() call. How about fixing also usage of for_each_available_child_of_node() in regulator_of_get_init_data()? Best regards, Krzysztof
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <k.kozlowski@samsung.com> To: Julia Lawall <Julia.Lawall@lip6.fr> Cc: Liam Girdwood <lgirdwood@gmail.com>, kernel-janitors@vger.kernel.org, Mark Brown <broonie@kernel.org>, linux-kernel@vger.kernel.org, Russell King - ARM Linux <linux@arm.linux.org.uk>, Thomas Petazzoni <thomas.petazzoni@free-electrons.com>, Andrew Lunn <andrew@lunn.ch>, Bjorn Helgaas <bhelgaas@google.com>, Jason Cooper <jason@lakedaemon.net> Subject: Re: [PATCH 4/5] regulator: of: add missing of_node_put Date: Mon, 12 Oct 2015 00:33:59 +0000 [thread overview] Message-ID: <CAJKOXPc7b4H8qFLRLR2jecA74BPJ-SNfY-GtfTVf=mfzrEeCtw@mail.gmail.com> (raw) In-Reply-To: <1444480254-14399-5-git-send-email-Julia.Lawall@lip6.fr> 2015-10-10 21:30 GMT+09:00 Julia Lawall <Julia.Lawall@lip6.fr>: > > for_each_child_of_node performs an of_node_get on each iteration, so > a break out of the loop requires an of_node_put. > > The semantic patch that fixes this problem is as follows > (http://coccinelle.lip6.fr): > > // <smpl> > @@ > expression root,e; > local idexpression child; > @@ > > for_each_child_of_node(root, child) { > ... when != of_node_put(child) > when != e = child > ( > return child; > | > + of_node_put(child); > ? return ...; > ) > ... > } > // </smpl> > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > > --- > drivers/regulator/of_regulator.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c > index 499e437..f9d77b4 100644 > --- a/drivers/regulator/of_regulator.c > +++ b/drivers/regulator/of_regulator.c > @@ -274,6 +274,7 @@ int of_regulator_match(struct device *dev, struct device_node *node, > dev_err(dev, > "failed to parse DT for regulator %s\n", > child->name); > + of_node_put(child); This looks good. > return -EINVAL; > } > match->of_node = of_node_get(child); But what about 'break' few lines below? The reference from last of_get_next_child() should be also dropped because... or we should remove this of_node_get() call. How about fixing also usage of for_each_available_child_of_node() in regulator_of_get_init_data()? Best regards, Krzysztof
next prev parent reply other threads:[~2015-10-12 0:34 UTC|newest] Thread overview: 183+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-10-10 12:30 [PATCH 0/5] add missing of_node_put Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-10 12:30 ` [PATCH 1/5] backlight: 88pm860x_bl: " Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-13 8:15 ` Lee Jones 2015-10-13 8:15 ` Lee Jones 2015-10-13 8:15 ` Lee Jones 2015-10-10 12:30 ` [PATCH 2/5] power_supply: charger-manager: " Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-12 2:20 ` Krzysztof Kozlowski 2015-10-12 2:20 ` Krzysztof Kozlowski 2015-10-15 8:56 ` Sebastian Reichel 2015-10-15 8:56 ` Sebastian Reichel 2015-10-10 12:30 ` [PATCH 3/5] ARM: shmobile: R-Mobile: " Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-12 0:16 ` Simon Horman 2015-10-12 0:16 ` Simon Horman 2015-10-12 0:16 ` Simon Horman 2015-10-12 7:18 ` Geert Uytterhoeven 2015-10-12 7:18 ` Geert Uytterhoeven 2015-10-12 7:18 ` Geert Uytterhoeven 2015-10-12 7:24 ` Julia Lawall 2015-10-12 7:24 ` Julia Lawall 2015-10-12 7:24 ` Julia Lawall 2015-10-12 7:26 ` Geert Uytterhoeven 2015-10-12 7:26 ` Geert Uytterhoeven 2015-10-12 7:26 ` Geert Uytterhoeven 2015-10-12 7:29 ` Thomas Petazzoni 2015-10-12 7:29 ` Thomas Petazzoni 2015-10-12 7:29 ` Thomas Petazzoni 2015-10-12 7:30 ` Geert Uytterhoeven 2015-10-12 7:30 ` Geert Uytterhoeven 2015-10-12 7:30 ` Geert Uytterhoeven 2015-10-10 12:30 ` [PATCH 4/5] regulator: of: " Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-12 0:33 ` Krzysztof Kozlowski [this message] 2015-10-12 0:33 ` Krzysztof Kozlowski 2015-10-12 5:35 ` Julia Lawall 2015-10-12 5:35 ` Julia Lawall 2015-10-12 12:44 ` Julia Lawall 2015-10-12 12:44 ` Julia Lawall 2015-10-12 12:58 ` Krzysztof Kozlowski 2015-10-12 12:58 ` Krzysztof Kozlowski 2018-02-12 12:09 ` Applied "regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_match()'" to the regulator tree Mark Brown 2018-02-12 12:09 ` Applied "regulator: of: Add a missing 'of_node_put()' in an error handling path of 'of_regulator_mat Mark Brown 2015-10-10 12:30 ` [PATCH 5/5] arm: add missing of_node_put Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-10 12:30 ` Julia Lawall 2015-10-10 21:02 ` Arnd Bergmann 2015-10-10 21:02 ` Arnd Bergmann 2015-10-10 21:02 ` Arnd Bergmann 2015-10-10 21:08 ` Thomas Petazzoni 2015-10-10 21:08 ` Thomas Petazzoni 2015-10-10 21:08 ` Thomas Petazzoni 2015-10-10 21:12 ` Julia Lawall 2015-10-10 21:12 ` Julia Lawall 2015-10-10 21:12 ` Julia Lawall 2015-10-10 21:10 ` Julia Lawall 2015-10-10 21:10 ` Julia Lawall 2015-10-10 21:10 ` Julia Lawall 2015-10-10 21:15 ` Arnd Bergmann 2015-10-10 21:15 ` Arnd Bergmann 2015-10-10 21:15 ` Arnd Bergmann 2015-10-10 21:41 ` [PATCH 5/5 v2] " Julia Lawall 2015-10-10 21:41 ` Julia Lawall 2015-10-10 21:41 ` Julia Lawall 2015-10-21 20:41 [PATCH 0/5] " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 20:41 ` [PATCH 1/5] clk: " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 23:13 ` Stephen Boyd 2015-10-21 23:13 ` Stephen Boyd 2015-10-22 5:52 ` Julia Lawall 2015-10-22 5:52 ` Julia Lawall 2015-10-21 20:41 ` [PATCH 2/5] clk: si5351: " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 23:14 ` Stephen Boyd 2015-10-21 23:14 ` Stephen Boyd 2015-10-21 20:41 ` [PATCH 3/5] clk: imx27: " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 20:41 ` [PATCH 4/5] clk: imx31: " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 23:15 ` Stephen Boyd 2015-10-21 20:41 ` [PATCH 5/5] clk: scpi: " Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 20:41 ` Julia Lawall 2015-10-21 23:17 ` Stephen Boyd 2015-10-21 23:17 ` Stephen Boyd 2015-10-21 23:17 ` Stephen Boyd 2015-10-22 9:21 ` Sudeep Holla 2015-10-22 9:21 ` Sudeep Holla 2015-10-22 9:21 ` Sudeep Holla 2015-11-26 17:29 ` Sudeep Holla 2015-11-26 17:29 ` Sudeep Holla 2015-11-26 17:29 ` Sudeep Holla 2015-12-01 0:28 ` Stephen Boyd 2015-12-01 0:28 ` Stephen Boyd 2015-12-01 0:28 ` Stephen Boyd 2015-12-01 0:29 ` Stephen Boyd 2015-12-01 0:29 ` Stephen Boyd 2015-12-01 0:29 ` Stephen Boyd 2015-12-21 16:39 [PATCH 0/5] " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` [PATCH 1/5] pinctrl-tegra: " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-22 12:44 ` Linus Walleij 2015-12-22 12:44 ` Linus Walleij 2015-12-21 16:39 ` [PATCH 2/5] pinctrl: sirf: " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-22 12:45 ` Linus Walleij 2015-12-22 12:45 ` Linus Walleij 2015-12-22 12:45 ` Linus Walleij 2015-12-22 12:45 ` Linus Walleij 2015-12-21 16:39 ` [PATCH 3/5] pinctrl: sh-pfc: " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 20:46 ` Laurent Pinchart 2015-12-21 20:46 ` Laurent Pinchart 2015-12-22 12:47 ` Linus Walleij 2015-12-22 12:47 ` Linus Walleij 2015-12-22 13:23 ` Geert Uytterhoeven 2015-12-22 13:23 ` Geert Uytterhoeven 2015-12-21 16:39 ` [PATCH 4/5] pinctrl: rockchip: " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` Julia Lawall [not found] ` <1450715988-4770-5-git-send-email-Julia.Lawall-L2FTfq7BK8M@public.gmane.org> 2015-12-21 21:20 ` Heiko Stübner 2015-12-21 21:20 ` Heiko Stübner 2015-12-21 21:20 ` Heiko Stübner 2015-12-21 21:20 ` Heiko Stübner 2015-12-22 12:48 ` Linus Walleij 2015-12-22 12:48 ` Linus Walleij 2015-12-22 12:48 ` Linus Walleij 2015-12-22 12:48 ` Linus Walleij 2015-12-21 16:39 ` [PATCH 5/5] pinctrl: mediatek: " Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-21 16:39 ` Julia Lawall 2015-12-22 12:49 ` Linus Walleij 2015-12-22 12:49 ` Linus Walleij 2015-12-22 12:49 ` Linus Walleij 2015-12-22 12:49 ` Linus Walleij 2018-05-23 19:07 [PATCH 0/5] " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` [PATCH 1/5] pinctrl: at91-pio4: " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-24 7:59 ` Ludovic Desroches 2018-05-24 7:59 ` Ludovic Desroches 2018-05-24 7:59 ` Ludovic Desroches 2018-05-24 7:59 ` Ludovic Desroches 2018-05-24 8:30 ` Linus Walleij 2018-05-24 8:30 ` Linus Walleij 2018-05-24 8:30 ` Linus Walleij 2018-05-23 19:07 ` [PATCH 2/5] phy: " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` [PATCH 3/5] soc: ti: knav_dma: " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` [PATCH 4/5] pci/hotplug/pnv-php: " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 21:50 ` Bjorn Helgaas 2018-05-23 21:50 ` Bjorn Helgaas 2018-05-23 19:07 ` [PATCH 5/5] drm/rockchip: lvds: " Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-05-23 19:07 ` Julia Lawall 2018-06-16 12:24 ` Heiko Stübner 2018-06-16 12:24 ` Heiko Stübner 2018-06-16 12:24 ` Heiko Stübner 2018-06-16 12:24 ` Heiko Stübner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAJKOXPc7b4H8qFLRLR2jecA74BPJ-SNfY-GtfTVf=mfzrEeCtw@mail.gmail.com' \ --to=k.kozlowski@samsung.com \ --cc=Julia.Lawall@lip6.fr \ --cc=andrew@lunn.ch \ --cc=bhelgaas@google.com \ --cc=broonie@kernel.org \ --cc=jason@lakedaemon.net \ --cc=kernel-janitors@vger.kernel.org \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=thomas.petazzoni@free-electrons.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.