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

From: Jonathan Cameron
Date: Sun Aug 08 2021 - 13:06:14 EST


On Tue, 3 Aug 2021 21:06:13 +0900
William Breathitt Gray <vilhelm.gray@xxxxxxxxx> 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@xxxxxxxxxxxxxxx>
> Cc: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
> Cc: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>
> Cc: Alexandre Torgue <alexandre.torgue@xxxxxx>
> Acked-by: Syed Nayyar Waris <syednwaris@xxxxxxxxx>
> Reviewed-by: David Lechner <david@xxxxxxxxxxxxxx>
> Reviewed-by: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@xxxxxxxxx>

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;
>