[PATCH v14 03/17] counter: Standardize to ERANGE for limit exceeded errors

Jonathan Cameron jic23 at kernel.org
Sun Aug 8 10:08:55 PDT 2021


On Tue,  3 Aug 2021 21:06:13 +0900
William Breathitt Gray <vilhelm.gray at gmail.com> wrote:

> ERANGE is a semantically better error code to return when an argument
> value falls outside the supported limit range of a device.
> 
> Cc: Jarkko Nikula <jarkko.nikula at linux.intel.com>
> Cc: Oleksij Rempel <o.rempel at pengutronix.de>
> Cc: Maxime Coquelin <mcoquelin.stm32 at gmail.com>
> Cc: Alexandre Torgue <alexandre.torgue at st.com>
> Acked-by: Syed Nayyar Waris <syednwaris at gmail.com>
> Reviewed-by: David Lechner <david at lechnology.com>
> Reviewed-by: Fabrice Gasnier <fabrice.gasnier at foss.st.com>
> Signed-off-by: William Breathitt Gray <vilhelm.gray at gmail.com>

Just for the record, I'll note this is an ABI change.  However, I'm
fairly sure it's the category of no one will notice and so we are fine
to change it.

Applied,

Thanks,

Jonathan

> ---
>  drivers/counter/104-quad-8.c        | 6 +++---
>  drivers/counter/intel-qep.c         | 2 +-
>  drivers/counter/interrupt-cnt.c     | 3 +++
>  drivers/counter/stm32-lptimer-cnt.c | 2 +-
>  4 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c
> index b358b2b2b883..d54efdb8d393 100644
> --- a/drivers/counter/104-quad-8.c
> +++ b/drivers/counter/104-quad-8.c
> @@ -154,7 +154,7 @@ static int quad8_count_write(struct counter_device *counter,
>  
>  	/* Only 24-bit values are supported */
>  	if (val > 0xFFFFFF)
> -		return -EINVAL;
> +		return -ERANGE;
>  
>  	mutex_lock(&priv->lock);
>  
> @@ -669,7 +669,7 @@ static ssize_t quad8_count_preset_write(struct counter_device *counter,
>  
>  	/* Only 24-bit values are supported */
>  	if (preset > 0xFFFFFF)
> -		return -EINVAL;
> +		return -ERANGE;
>  
>  	mutex_lock(&priv->lock);
>  
> @@ -714,7 +714,7 @@ static ssize_t quad8_count_ceiling_write(struct counter_device *counter,
>  
>  	/* Only 24-bit values are supported */
>  	if (ceiling > 0xFFFFFF)
> -		return -EINVAL;
> +		return -ERANGE;
>  
>  	mutex_lock(&priv->lock);
>  
> diff --git a/drivers/counter/intel-qep.c b/drivers/counter/intel-qep.c
> index 1a9512e28519..204f94577666 100644
> --- a/drivers/counter/intel-qep.c
> +++ b/drivers/counter/intel-qep.c
> @@ -319,7 +319,7 @@ static ssize_t spike_filter_ns_write(struct counter_device *counter,
>  	}
>  
>  	if (length > INTEL_QEPFLT_MAX_COUNT(length))
> -		return -EINVAL;
> +		return -ERANGE;
>  
>  	mutex_lock(&qep->lock);
>  	if (qep->enabled) {
> diff --git a/drivers/counter/interrupt-cnt.c b/drivers/counter/interrupt-cnt.c
> index 5df7cd13d4c7..66cac4900327 100644
> --- a/drivers/counter/interrupt-cnt.c
> +++ b/drivers/counter/interrupt-cnt.c
> @@ -107,6 +107,9 @@ static int interrupt_cnt_write(struct counter_device *counter,
>  {
>  	struct interrupt_cnt_priv *priv = counter->priv;
>  
> +	if (val != (typeof(priv->count.counter))val)
> +		return -ERANGE;
> +
>  	atomic_set(&priv->count, val);
>  
>  	return 0;
> diff --git a/drivers/counter/stm32-lptimer-cnt.c b/drivers/counter/stm32-lptimer-cnt.c
> index 78f383b77bd2..49aeb9e393f3 100644
> --- a/drivers/counter/stm32-lptimer-cnt.c
> +++ b/drivers/counter/stm32-lptimer-cnt.c
> @@ -283,7 +283,7 @@ static ssize_t stm32_lptim_cnt_ceiling_write(struct counter_device *counter,
>  		return ret;
>  
>  	if (ceiling > STM32_LPTIM_MAX_ARR)
> -		return -EINVAL;
> +		return -ERANGE;
>  
>  	priv->ceiling = ceiling;
>  




More information about the linux-arm-kernel mailing list