Re: [PATCH v2] pinctrl: imx1-core: fix device_node refcount leak

Frank Li <[email protected]>
Newsgroups org.kernel.vger.linux-gpio,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel
Message-ID <an9_haXPyNHTPbDU@lizhi-Precision-Tower-5810>
On Sat, Aug 15, 2026 at 12:35:27AM +0530, manushprajwal wrote:
> From: Manush Prajwal <[email protected]>
>
> imx1_pinctrl_dt_is_flat_functions() iterated child and grandchild
> device nodes with for_each_child_of_node() but returned early from
> inside both loops without dropping the reference the iterator held on
> the current node.
>
> Rework both loops around for_each_child_of_node_scoped() instead of
> adding manual of_node_put() calls, matching the sibling helper in
> pinctrl-imx.c and imx1_pinctrl_parse_dt() in this same file, which
> already use the scoped variant.
>
> Signed-off-by: Manush Prajwal <[email protected]>
> ---

Reviewed-by: Frank Li <[email protected]>

> v2: Use for_each_child_of_node_scoped() instead of manual of_node_put()
>     calls, per Frank Li's review.
>
>  drivers/pinctrl/freescale/pinctrl-imx1-core.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> index b7bd4ef9c0..fa8f6a7e03 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> @@ -547,14 +547,11 @@
>   */
>  static bool imx1_pinctrl_dt_is_flat_functions(struct device_node *np)
>  {
> -	struct device_node *function_np;
> -	struct device_node *pinctrl_np;
> -
> -	for_each_child_of_node(np, function_np) {
> +	for_each_child_of_node_scoped(np, function_np) {
>  		if (of_property_present(function_np, "fsl,pins"))
>  			return true;
>
> -		for_each_child_of_node(function_np, pinctrl_np) {
> +		for_each_child_of_node_scoped(function_np, pinctrl_np) {
>  			if (of_property_present(pinctrl_np, "fsl,pins"))
>  				return false;
>  		}
> --
> 2.46.2.windows.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.