From: Stefano Brivio <sbrivio@redhat.com>
To: "John B. Wyatt IV" <jbwyatt4@gmail.com>
Cc: outreachy-kernel@googlegroups.com,
Julia Lawall <julia.lawall@inria.fr>,
Forest Bond <forest@alittletooquiet.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Quentin Deslandes <quentin.deslandes@itdev.co.uk>,
Colin Ian King <colin.king@canonical.com>,
Malcolm Priestley <tvboxspy@gmail.com>,
devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6] staging: vt6656: add error code handling to unused variable
Date: Tue, 31 Mar 2020 00:32:44 +0200 [thread overview]
Message-ID: <20200331003244.4e9f5ce2@elisabeth> (raw)
In-Reply-To: <61bb6678d48557895671488357a62680d0ae655f.camel@gmail.com>
On Mon, 30 Mar 2020 15:26:04 -0700
"John B. Wyatt IV" <jbwyatt4@gmail.com> wrote:
> On Tue, 2020-03-31 at 00:01 +0200, Stefano Brivio wrote:
> > On Mon, 30 Mar 2020 14:46:13 -0700
> > "John B. Wyatt IV" <jbwyatt4@gmail.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@itdev.co.uk>
> > > Suggested-by: Stefano Brivio <sbrivio@redhat.com>
> > > Reviewed-by: Quentin Deslandes <quentin.deslandes@itdev.co.uk>
> > > Signed-off-by: John B. Wyatt IV <jbwyatt4@gmail.com>
> > > ---
> > > v6: Forgot to add all the v5 code to commit.
> > >
> > > v5: Remove Suggested-by: Julia Lawall above seperator line.
> > > Remove break; statement in switch block.
> > > break; removal checked by both gcc compile and checkpatch.
> > > Suggested by Stefano Brivio <sbrivio@redhat.com>
> > >
> > > v4: Move Suggested-by: Julia Lawall above seperator line.
> > > Add Reviewed-by tag as requested by Quentin Deslandes.
> > >
> > > 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@inria.fr>
> > >
> > > drivers/staging/vt6656/card.c | 20 ++++++++++++--------
> > > 1 file changed, 12 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/staging/vt6656/card.c
> > > b/drivers/staging/vt6656/card.c
> > > index dc3ab10eb630..c947e8188384 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));
> > > - break;
> > > + ret = vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL,
> > > + (SOFTPWRCTL_SWPE2 |
> > > + SOFTPWRCTL_SWPE3));
> > > }
> > > + if (ret)
> > > + return ret;
> >
> > Hmm, sorry, I haven't been clear enough I guess.
> >
> > This is what you're doing:
> >
> > if rf_type is not in that list:
> > - set some bits in a register
> > - did it fail? return
> > - did it fail? return
> > ...
> >
> > if rf_type is in that list:
> > - set some bits in a register
> > - did it fail? return
> > - set some other bits
> > - did it fail? return
> > ...
> >
> > Now, the "set some other bits" part is already selected depending on
> > rf_type. There's no need to check 'ret' otherwise, so you can move
> > the
> > return just after setting 'ret', in the switch case.
> >
>
> Thank you for pointing that out Stefano. That would be a serious issue
> with logic.
>
> Just to be sure. Are you looking for this?
>
> switch (priv->rf_type) {
> case RF_AL2230:
> case RF_AL2230S:
> case RF_AIROHA7230:
> case RF_VT3226:
> case RF_VT3226D0:
> case RF_VT3342A0:
> ret = vnt_mac_reg_bits_on(priv, MAC_REG_SOFTPWRCTL,
> (SOFTPWRCTL_SWPE2 |
> SOFTPWRCTL_SWPE3));
> if (ret)
> return ret;
> }
Exactly.
> > With a check, because you don't want to return if ret == 0.
> >
>
> What do you mean exactly by this?
Exactly what you wrote above: if (ret) ...
> The new code should only return a 0 at the end of the function with the
> vnt_mac_reg_bits_off call.
That, or an error code if vnt_mac_reg_bits_off() fails.
--
Stefano
prev parent reply other threads:[~2020-03-30 22:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 21:46 [PATCH v6] staging: vt6656: add error code handling to unused variable John B. Wyatt IV
2020-03-30 22:01 ` Stefano Brivio
2020-03-30 22:26 ` John B. Wyatt IV
2020-03-30 22:32 ` Stefano Brivio [this message]
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=20200331003244.4e9f5ce2@elisabeth \
--to=sbrivio@redhat.com \
--cc=colin.king@canonical.com \
--cc=devel@driverdev.osuosl.org \
--cc=forest@alittletooquiet.net \
--cc=gregkh@linuxfoundation.org \
--cc=jbwyatt4@gmail.com \
--cc=julia.lawall@inria.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=outreachy-kernel@googlegroups.com \
--cc=quentin.deslandes@itdev.co.uk \
--cc=tvboxspy@gmail.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: link
Be 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.