[PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns

Andrew Ijano posted 3 patches 4 months ago
There is a newer version of this series
[PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Andrew Ijano 4 months ago
Replace usage of error_ret labels by returning directly when handling
errors. Cases that do a mutex unlock were not changed.

Signed-off-by: Andrew Ijano <andrew.lopes@alumni.usp.br>
Co-developed-by: Gustavo Bastos <gustavobastos@usp.br>
Signed-off-by: Gustavo Bastos <gustavobastos@usp.br>
Suggested-by: Jonathan Cameron <jic23@kernel.org>
---
 drivers/iio/accel/sca3000.c | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
index aabe4491efd7..bfa8a3f5a92f 100644
--- a/drivers/iio/accel/sca3000.c
+++ b/drivers/iio/accel/sca3000.c
@@ -369,23 +369,20 @@ static int sca3000_write_ctrl_reg(struct sca3000_state *st,
 
 	ret = sca3000_reg_lock_on(st);
 	if (ret < 0)
-		goto error_ret;
+		return ret;
 	if (ret) {
 		ret = __sca3000_unlock_reg_lock(st);
 		if (ret)
-			goto error_ret;
+			return ret;
 	}
 
 	/* Set the control select register */
 	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, sel);
 	if (ret)
-		goto error_ret;
+		return ret;
 
 	/* Write the actual value into the register */
-	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
-
-error_ret:
-	return ret;
+	return sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
 }
 
 /**
@@ -402,22 +399,20 @@ static int sca3000_read_ctrl_reg(struct sca3000_state *st,
 
 	ret = sca3000_reg_lock_on(st);
 	if (ret < 0)
-		goto error_ret;
+		return ret;
 	if (ret) {
 		ret = __sca3000_unlock_reg_lock(st);
 		if (ret)
-			goto error_ret;
+			return ret;
 	}
 	/* Set the control select register */
 	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, ctrl_reg);
 	if (ret)
-		goto error_ret;
+		return ret;
 	ret = sca3000_read_data_short(st, SCA3000_REG_CTRL_DATA_ADDR, 1);
 	if (ret)
-		goto error_ret;
+		return ret;
 	return st->rx[0];
-error_ret:
-	return ret;
 }
 
 /**
@@ -577,7 +572,8 @@ static inline int __sca3000_get_base_freq(struct sca3000_state *st,
 
 	ret = sca3000_read_data_short(st, SCA3000_REG_MODE_ADDR, 1);
 	if (ret)
-		goto error_ret;
+		return ret;
+
 	switch (SCA3000_REG_MODE_MODE_MASK & st->rx[0]) {
 	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
 		*base_freq = info->measurement_mode_freq;
@@ -591,7 +587,6 @@ static inline int __sca3000_get_base_freq(struct sca3000_state *st,
 	default:
 		ret = -EINVAL;
 	}
-error_ret:
 	return ret;
 }
 
@@ -834,7 +829,7 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
 	val = st->rx[0];
 	mutex_unlock(&st->lock);
 	if (ret)
-		goto error_ret;
+		return ret;
 
 	switch (val & SCA3000_REG_MODE_MODE_MASK) {
 	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
@@ -857,8 +852,6 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
 		break;
 	}
 	return len;
-error_ret:
-	return ret;
 }
 
 /*
-- 
2.49.0
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Andy Shevchenko 4 months ago
On Wed, Jun 11, 2025 at 04:39:19PM -0300, Andrew Ijano wrote:
> Replace usage of error_ret labels by returning directly when handling
> errors. Cases that do a mutex unlock were not changed.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Jonathan Cameron 3 months, 4 weeks ago
On Thu, 12 Jun 2025 15:56:26 +0300
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> On Wed, Jun 11, 2025 at 04:39:19PM -0300, Andrew Ijano wrote:
> > Replace usage of error_ret labels by returning directly when handling
> > errors. Cases that do a mutex unlock were not changed.  
> 
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Applied this patch to the togreg branch of iio.git which is
initially pushed out as testing.

Thanks,

Jonathan

>
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Andrew Ijano 3 months, 4 weeks ago
On Sat, Jun 14, 2025 at 8:48 AM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Thu, 12 Jun 2025 15:56:26 +0300
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
>
...
> >
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Applied this patch to the togreg branch of iio.git which is
> initially pushed out as testing.
>

Thank you, Nino, Andy and Jonathan for the review! I'll address the
comments and send a new version of the patchset for paches #2 and #3
then.

Thanks,
Andrew
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Nuno Sá 4 months ago
On Wed, 2025-06-11 at 16:39 -0300, Andrew Ijano wrote:
> Replace usage of error_ret labels by returning directly when handling
> errors. Cases that do a mutex unlock were not changed.
> 
> Signed-off-by: Andrew Ijano <andrew.lopes@alumni.usp.br>
> Co-developed-by: Gustavo Bastos <gustavobastos@usp.br>
> Signed-off-by: Gustavo Bastos <gustavobastos@usp.br>
> Suggested-by: Jonathan Cameron <jic23@kernel.org>
> ---

Code looks good. But since you're doing this you could cleanup some of the switch()
cases. Some return in every case statement while other don't (even think I saw one
one place where 'return' in the end was not needed). IIRC, there's preference for
returning in place.

- Nuno Sá

>  drivers/iio/accel/sca3000.c | 29 +++++++++++------------------
>  1 file changed, 11 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index aabe4491efd7..bfa8a3f5a92f 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -369,23 +369,20 @@ static int sca3000_write_ctrl_reg(struct sca3000_state *st,
>  
>  	ret = sca3000_reg_lock_on(st);
>  	if (ret < 0)
> -		goto error_ret;
> +		return ret;
>  	if (ret) {
>  		ret = __sca3000_unlock_reg_lock(st);
>  		if (ret)
> -			goto error_ret;
> +			return ret;
>  	}
>  
>  	/* Set the control select register */
>  	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, sel);
>  	if (ret)
> -		goto error_ret;
> +		return ret;
>  
>  	/* Write the actual value into the register */
> -	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
> -
> -error_ret:
> -	return ret;
> +	return sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
>  }
>  
>  /**
> @@ -402,22 +399,20 @@ static int sca3000_read_ctrl_reg(struct sca3000_state *st,
>  
>  	ret = sca3000_reg_lock_on(st);
>  	if (ret < 0)
> -		goto error_ret;
> +		return ret;
>  	if (ret) {
>  		ret = __sca3000_unlock_reg_lock(st);
>  		if (ret)
> -			goto error_ret;
> +			return ret;
>  	}
>  	/* Set the control select register */
>  	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, ctrl_reg);
>  	if (ret)
> -		goto error_ret;
> +		return ret;
>  	ret = sca3000_read_data_short(st, SCA3000_REG_CTRL_DATA_ADDR, 1);
>  	if (ret)
> -		goto error_ret;
> +		return ret;
>  	return st->rx[0];
> -error_ret:
> -	return ret;
>  }
>  
>  /**
> @@ -577,7 +572,8 @@ static inline int __sca3000_get_base_freq(struct sca3000_state
> *st,
>  
>  	ret = sca3000_read_data_short(st, SCA3000_REG_MODE_ADDR, 1);
>  	if (ret)
> -		goto error_ret;
> +		return ret;
> +
>  	switch (SCA3000_REG_MODE_MODE_MASK & st->rx[0]) {
>  	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
>  		*base_freq = info->measurement_mode_freq;
> @@ -591,7 +587,6 @@ static inline int __sca3000_get_base_freq(struct sca3000_state
> *st,
>  	default:
>  		ret = -EINVAL;
>  	}
> -error_ret:
>  	return ret;
>  }
>  
> @@ -834,7 +829,7 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
>  	val = st->rx[0];
>  	mutex_unlock(&st->lock);
>  	if (ret)
> -		goto error_ret;
> +		return ret;
>  
>  	switch (val & SCA3000_REG_MODE_MODE_MASK) {
>  	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
> @@ -857,8 +852,6 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
>  		break;
>  	}
>  	return len;
> -error_ret:
> -	return ret;
>  }
>  
>  /*
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Nuno Sá 4 months ago
On Thu, 2025-06-12 at 07:20 +0100, Nuno Sá wrote:
> On Wed, 2025-06-11 at 16:39 -0300, Andrew Ijano wrote:
> > Replace usage of error_ret labels by returning directly when handling
> > errors. Cases that do a mutex unlock were not changed.
> > 
> > Signed-off-by: Andrew Ijano <andrew.lopes@alumni.usp.br>
> > Co-developed-by: Gustavo Bastos <gustavobastos@usp.br>
> > Signed-off-by: Gustavo Bastos <gustavobastos@usp.br>
> > Suggested-by: Jonathan Cameron <jic23@kernel.org>
> > ---
> 
> Code looks good. But since you're doing this you could cleanup some of the switch()
> cases. Some return in every case statement while other don't (even think I saw one
> one place where 'return' in the end was not needed). IIRC, there's preference for
> returning in place.
> 

I see the above could be a bit cumbersome in cases there's locking (which get's
cleaned up in patch 3). So, nevermind the above. If there's any leftover, you can
send a follow up patch or introduce a new patch if you need to re-spin.

For this one:

Reviewed-by: Nuno Sá <nuno.sa@analog.com>

> 
> >  drivers/iio/accel/sca3000.c | 29 +++++++++++------------------
> >  1 file changed, 11 insertions(+), 18 deletions(-)
> > 
> > diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> > index aabe4491efd7..bfa8a3f5a92f 100644
> > --- a/drivers/iio/accel/sca3000.c
> > +++ b/drivers/iio/accel/sca3000.c
> > @@ -369,23 +369,20 @@ static int sca3000_write_ctrl_reg(struct sca3000_state *st,
> >  
> >  	ret = sca3000_reg_lock_on(st);
> >  	if (ret < 0)
> > -		goto error_ret;
> > +		return ret;
> >  	if (ret) {
> >  		ret = __sca3000_unlock_reg_lock(st);
> >  		if (ret)
> > -			goto error_ret;
> > +			return ret;
> >  	}
> >  
> >  	/* Set the control select register */
> >  	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, sel);
> >  	if (ret)
> > -		goto error_ret;
> > +		return ret;
> >  
> >  	/* Write the actual value into the register */
> > -	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
> > -
> > -error_ret:
> > -	return ret;
> > +	return sca3000_write_reg(st, SCA3000_REG_CTRL_DATA_ADDR, val);
> >  }
> >  
> >  /**
> > @@ -402,22 +399,20 @@ static int sca3000_read_ctrl_reg(struct sca3000_state *st,
> >  
> >  	ret = sca3000_reg_lock_on(st);
> >  	if (ret < 0)
> > -		goto error_ret;
> > +		return ret;
> >  	if (ret) {
> >  		ret = __sca3000_unlock_reg_lock(st);
> >  		if (ret)
> > -			goto error_ret;
> > +			return ret;
> >  	}
> >  	/* Set the control select register */
> >  	ret = sca3000_write_reg(st, SCA3000_REG_CTRL_SEL_ADDR, ctrl_reg);
> >  	if (ret)
> > -		goto error_ret;
> > +		return ret;
> >  	ret = sca3000_read_data_short(st, SCA3000_REG_CTRL_DATA_ADDR, 1);
> >  	if (ret)
> > -		goto error_ret;
> > +		return ret;
> >  	return st->rx[0];
> > -error_ret:
> > -	return ret;
> >  }
> >  
> >  /**
> > @@ -577,7 +572,8 @@ static inline int __sca3000_get_base_freq(struct
> > sca3000_state
> > *st,
> >  
> >  	ret = sca3000_read_data_short(st, SCA3000_REG_MODE_ADDR, 1);
> >  	if (ret)
> > -		goto error_ret;
> > +		return ret;
> > +
> >  	switch (SCA3000_REG_MODE_MODE_MASK & st->rx[0]) {
> >  	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
> >  		*base_freq = info->measurement_mode_freq;
> > @@ -591,7 +587,6 @@ static inline int __sca3000_get_base_freq(struct
> > sca3000_state
> > *st,
> >  	default:
> >  		ret = -EINVAL;
> >  	}
> > -error_ret:
> >  	return ret;
> >  }
> >  
> > @@ -834,7 +829,7 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
> >  	val = st->rx[0];
> >  	mutex_unlock(&st->lock);
> >  	if (ret)
> > -		goto error_ret;
> > +		return ret;
> >  
> >  	switch (val & SCA3000_REG_MODE_MODE_MASK) {
> >  	case SCA3000_REG_MODE_MEAS_MODE_NORMAL:
> > @@ -857,8 +852,6 @@ static ssize_t sca3000_read_av_freq(struct device *dev,
> >  		break;
> >  	}
> >  	return len;
> > -error_ret:
> > -	return ret;
> >  }
> >  
> >  /*
> 
Re: [PATCH v5 1/3] iio: accel: sca3000: replace error_ret labels by simple returns
Posted by Andrew Ijano 3 months, 4 weeks ago
On Thu, Jun 12, 2025 at 4:41 AM Nuno Sá <noname.nuno@gmail.com> wrote:
>
...
> >
> > Code looks good. But since you're doing this you could cleanup some of the switch()
> > cases. Some return in every case statement while other don't (even think I saw one
> > one place where 'return' in the end was not needed). IIRC, there's preference for
> > returning in place.
> >
>
> I see the above could be a bit cumbersome in cases there's locking (which get's
> cleaned up in patch 3). So, nevermind the above. If there's any leftover, you can
> send a follow up patch or introduce a new patch if you need to re-spin.
>
Great! That's the idea, I addressed these cases in patch #3, but I'll
double check if there is any leftover!

Thanks,
Andrew