lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240701135651.0000768a@Huawei.com>
Date: Mon, 1 Jul 2024 13:56:51 +0100
From: Jonathan Cameron <Jonathan.Cameron@...wei.com>
To: "Peng Fan (OSS)" <peng.fan@....nxp.com>
CC: <linus.walleij@...aro.org>, <dan.carpenter@...aro.org>,
	<linux-gpio@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
	<linux-kernel@...r.kernel.org>, <aisheng.dong@....com>, <festevam@...il.com>,
	<shawnguo@...nel.org>, <kernel@...gutronix.de>,
	<u.kleine-koenig@...gutronix.de>, Peng Fan <peng.fan@....com>
Subject: Re: [PATCH V3 2/3] pinctrl: equilibrium: Use scope based
 of_node_put() cleanups

On Thu, 27 Jun 2024 21:17:20 +0800
"Peng Fan (OSS)" <peng.fan@....nxp.com> wrote:

> From: Peng Fan <peng.fan@....com>
> 
> Use scope based of_node_put() cleanup to simplify code.
> 
> Signed-off-by: Peng Fan <peng.fan@....com>
> ---
>  drivers/pinctrl/pinctrl-equilibrium.c | 21 +++++----------------
>  1 file changed, 5 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/pinctrl/pinctrl-equilibrium.c b/drivers/pinctrl/pinctrl-equilibrium.c
> index a6d089eaaae5..3a9a0f059090 100644
> --- a/drivers/pinctrl/pinctrl-equilibrium.c
> +++ b/drivers/pinctrl/pinctrl-equilibrium.c
> @@ -588,7 +588,6 @@ static int funcs_utils(struct device *dev, struct pinfunction *funcs,
>  		       unsigned int *nr_funcs, funcs_util_ops op)
>  {
>  	struct device_node *node = dev->of_node;
> -	struct device_node *np;
>  	struct property *prop;
>  	const char *fn_name;
>  	const char **groups;
> @@ -596,7 +595,7 @@ static int funcs_utils(struct device *dev, struct pinfunction *funcs,
>  	int i, j;
>  
>  	i = 0;
> -	for_each_child_of_node(node, np) {
> +	for_each_child_of_node_scoped(node, np) {
>  		prop = of_find_property(np, "groups", NULL);
>  		if (!prop)
>  			continue;
> @@ -635,7 +634,6 @@ static int funcs_utils(struct device *dev, struct pinfunction *funcs,
>  			break;
>  
>  		default:
> -			of_node_put(np);
>  			return -EINVAL;
>  		}
>  		i++;
> @@ -708,11 +706,10 @@ static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
>  	struct device_node *node = dev->of_node;
>  	unsigned int *pins, *pinmux, pin_id, pinmux_id;
>  	struct pingroup group, *grp = &group;
> -	struct device_node *np;
>  	struct property *prop;
>  	int j, err;
>  
> -	for_each_child_of_node(node, np) {
> +	for_each_child_of_node_scoped(node, np) {
>  		prop = of_find_property(np, "groups", NULL);
>  		if (!prop)
>  			continue;
> @@ -720,42 +717,35 @@ static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
>  		err = of_property_count_u32_elems(np, "pins");
>  		if (err < 0) {
>  			dev_err(dev, "No pins in the group: %s\n", prop->name);
> -			of_node_put(np);
Given I think this is only called from probe, return dev_err_probe() works
nicely here as well.

>  			return err;
>  		}
Either way,
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@...wei.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ