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: <20200330191439.3bfcb658@elisabeth>
Date:   Mon, 30 Mar 2020 19:14:39 +0200
From:   Stefano Brivio <sbrivio@...hat.com>
To:     "John B. Wyatt IV" <jbwyatt4@...il.com>
Cc:     outreachy-kernel@...glegroups.com,
        Julia Lawall <julia.lawall@...ia.fr>,
        Forest Bond <forest@...ttletooquiet.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Quentin Deslandes <quentin.deslandes@...ev.co.uk>,
        Colin Ian King <colin.king@...onical.com>,
        Malcolm Priestley <tvboxspy@...il.com>,
        devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [Outreachy kernel] [PATCH v4] staging: vt6656: add error code
 handling to unused variable

On Mon, 30 Mar 2020 09:45:30 -0700
"John B. Wyatt IV" <jbwyatt4@...il.com> wrote:

> Add error code handling to unused 'ret' variable that was never used.
> Return an error code from functions called within vnt_radio_power_on.
> 
> Issue reported by coccinelle (coccicheck).
> 
> Suggested-by: Quentin Deslandes <quentin.deslandes@...ev.co.uk>
> Suggested-by: Stefano Brivio <sbrivio@...hat.com>
> Suggested-by: Julia Lawall <julia.lawall@...ia.fr>
> Reviewed-by: Quentin Deslandes <quentin.deslandes@...ev.co.uk>
> Signed-off-by: John B. Wyatt IV <jbwyatt4@...il.com>
> ---
> v4: Move Suggested-by: Julia Lawall above seperator line.

Actually, as Julia didn't suggest this patch, the place where you had
this in v3 was the right one.

>     Add Reviewed-by tag as requested by Quentin Deslandes.
>     Suggested-by: Quentin Deslandes <quentin.deslandes@...ev.co.uk>
> 
> v3: Forgot to add v2 code changes to commit.
> 
> v2: Replace goto statements with return.
>     Remove last if check because it was unneeded.
>     Suggested-by: Julia Lawall <julia.lawall@...ia.fr>
> 
>  drivers/staging/vt6656/card.c | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c
> index dc3ab10eb630..239012539e73 100644
> --- a/drivers/staging/vt6656/card.c
> +++ b/drivers/staging/vt6656/card.c
> @@ -723,9 +723,13 @@ int vnt_radio_power_on(struct vnt_private *priv)
>  {
>  	int ret = 0;
>  
> -	vnt_exit_deep_sleep(priv);
> +	ret = vnt_exit_deep_sleep(priv);
> +	if (ret)
> +		return ret;
>  
> -	vnt_mac_reg_bits_on(priv, MAC_REG_HOSTCR, HOSTCR_RXON);
> +	ret = vnt_mac_reg_bits_on(priv, MAC_REG_HOSTCR, HOSTCR_RXON);
> +	if (ret)
> +		return ret;
>  
>  	switch (priv->rf_type) {
>  	case RF_AL2230:
> @@ -734,14 +738,14 @@ int vnt_radio_power_on(struct vnt_private *priv)
>  	case RF_VT3226:
>  	case RF_VT3226D0:
>  	case RF_VT3342A0:
> -		vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL,
> -				    (SOFTPWRCTL_SWPE2 | SOFTPWRCTL_SWPE3));
> +		ret = vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL,
> +					 (SOFTPWRCTL_SWPE2 | SOFTPWRCTL_SWPE3));

Note that you broke the alignment here: the ( should be aligned with
'priv'. By the way, those parentheses are useless, but it's not
something you should fix in this patch.

>  		break;

Unless gcc whines (or checkpatch, even), you could replace this break
by the if (ret) return ret; below. If some tool is not happy with this,
though, you should still move that here: ret will be checked only for
those values of 'rf_type'.

>  	}
> +	if (ret)
> +		return ret;

Another thing that should be considered in this function is to restore
the previous hardware state on failures, but I think the way you're
handling this is possibly the safest, without hardware to test on.

-- 
Stefano

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ