linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Matheus Tavares <matheus.bernardino@usp.br>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	Michael Hennerich <Michael.Hennerich@analog.com>,
	Hartmut Knaack <knaack.h@gmx.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-iio@vger.kernel.org, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org, kernel-usp@googlegroups.com
Subject: Re: [PATCH v2 1/6] staging:iio:ad2s90: Make read_raw return spi_read's error code
Date: Sat, 3 Nov 2018 10:41:32 +0000	[thread overview]
Message-ID: <20181103104132.7140c9ed@archlinux> (raw)
In-Reply-To: <707d385e-7c08-91a3-2925-0cadf5bc2ac4@usp.br>

On Fri, 2 Nov 2018 10:49:59 -0300
Matheus Tavares <matheus.bernardino@usp.br> wrote:

> On 10/28/18 1:40 PM, Jonathan Cameron wrote:
> > On Fri, 26 Oct 2018 23:00:00 -0300
> > Matheus Tavares <matheus.bernardino@usp.br> wrote:
> >  
> >> Previously, when spi_read returned an error code inside ad2s90_read_raw,
> >> the code was ignored and IIO_VAL_INT was returned. This patch makes the
> >> function return the error code returned by spi_read when it fails.
> >>
> >> Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>  
> > Hi Matheus,
> >
> > One quick process note is that it takes people a while to get around to reviewing
> > a series, so whilst it's tempting to very quickly send out a fix the moment
> > someone points out something that needs fixing, it is perhaps better to wait
> > at least a few days to see if you can pick up a few more reviews before you
> > do a V2.
> >
> > A few comments on this one inline.  I think it can be done 'slightly'
> > (and I mean only slightly) nicer than the version you have.  Result is the
> > same though.
> >
> > Thanks,
> >
> > Jonathan
> >  
> >> ---
> >>   drivers/staging/iio/resolver/ad2s90.c | 9 ++++++---
> >>   1 file changed, 6 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/staging/iio/resolver/ad2s90.c b/drivers/staging/iio/resolver/ad2s90.c
> >> index 59586947a936..11fac9f90148 100644
> >> --- a/drivers/staging/iio/resolver/ad2s90.c
> >> +++ b/drivers/staging/iio/resolver/ad2s90.c
> >> @@ -35,12 +35,15 @@ static int ad2s90_read_raw(struct iio_dev *indio_dev,
> >>   	struct ad2s90_state *st = iio_priv(indio_dev);
> >>   
> >>   	mutex_lock(&st->lock);
> >> +  
> > Unconnected change.  I'm not against the change in principle but please
> > group white space tidying up in it's own patch.
> >  
> >>   	ret = spi_read(st->sdev, st->rx, 2);
> >> -	if (ret)
> >> -		goto error_ret;
> >> +	if (ret < 0) {
> >> +		mutex_unlock(&st->lock);
> >> +		return ret;  
> > I'd actually prefer to keep the return path the same as before as then
> > it is easy (if the function gets more complex in future) to be sure
> > that all paths unlock the mutex.  
> 
> 
> Ok, got it! But then, in patch 5, when we add the switch for 
> IIO_CHAN_INFO_SCALE and IIO_CHAN_INFO_RAW, should I keep the goto and 
> label inside the switch case? I mean, should it be something like this:
> 
> 
>      switch (m) {
>      case IIO_CHAN_INFO_SCALE:
>          ... // Does not use mutex
>      case IIO_CHAN_INFO_RAW:
>          mutex_lock(&st->lock);
>          ret = spi_read(st->sdev, st->rx, 2);
>          if (ret)
>              goto error_ret;
>          *val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4);
> 
> error_ret:
>          mutex_unlock(&st->lock);
> 
>          return ret ? ret : IIO_VAL_INT;
>      default:
>          break;
>      }
This is was of those ugly signs that perhaps a given block of code
should be factored out as a separate function.  It does feel like
overkill here though given how short the ugly bit will be ;)

So now I get why you did the refactor in the first place (I
hadn't made the connection).

I think on balance your first answer was the best one given
this is going to be deeper nested.  If the function gets
more complex then this block should factored out anyway once the switch
statement is there then we go back to the simple exit path.

Thanks,

Jonathan
> 
> 
> Matheus
> 
> 
> >> +	}
> >> +
> >>   	*val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4);
> >>   
> >> -error_ret:
> >>   	mutex_unlock(&st->lock);
> >>   
> >>   	return IIO_VAL_INT;  
> > The 'standard' if slightly nasty way of doing this is:
> >
> > 	return ret ? ret : IIO_VAL_INT;
> >  


  reply	other threads:[~2018-11-03 10:41 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-27  1:59 [PATCH v2 0/6] staging:iio:ad2s90: Add scale info and improve error handling Matheus Tavares
2018-10-27  2:00 ` [PATCH v2 1/6] staging:iio:ad2s90: Make read_raw return spi_read's error code Matheus Tavares
2018-10-28 16:40   ` Jonathan Cameron
2018-11-02 13:49     ` Matheus Tavares
2018-11-03 10:41       ` Jonathan Cameron [this message]
2018-10-27  2:00 ` [PATCH v2 2/6] staging:iio:ad2s90: Make probe handle spi_setup failure Matheus Tavares
2018-10-28 16:43   ` Jonathan Cameron
2018-11-02 13:59     ` Matheus Tavares
2018-11-03 10:45       ` Jonathan Cameron
2018-10-27  2:00 ` [PATCH v2 3/6] staging:iio:ad2s90: Remove always overwritten assignment Matheus Tavares
2018-10-27  2:00 ` [PATCH v2 4/6] staging:iio:ad2s90: Move device registration to the end of probe Matheus Tavares
2018-10-27  2:00 ` [PATCH v2 5/6] staging:iio:ad2s90: Add IIO_CHAN_INFO_SCALE to channel spec and read_raw Matheus Tavares
2018-10-28 16:50   ` Jonathan Cameron
2018-11-03 16:04     ` Matheus Tavares Bernardino
2018-11-03 17:26       ` Jonathan Cameron
2018-10-27  2:00 ` [PATCH v2 6/6] staging:iio:ad2s90: Check channel type at read_raw Matheus Tavares
2018-10-28 16:52 ` [PATCH v2 0/6] staging:iio:ad2s90: Add scale info and improve error handling Jonathan Cameron
2018-10-30 16:57   ` Matheus Tavares Bernardino

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=20181103104132.7140c9ed@archlinux \
    --to=jic23@kernel.org \
    --cc=Michael.Hennerich@analog.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel-usp@googlegroups.com \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matheus.bernardino@usp.br \
    --cc=pmeerw@pmeerw.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).