2023-07-13 11:18:50

by Waqar Hameed

[permalink] [raw]
Subject: [PATCH] iio: Fix return value check for set_trigger_state()

In `iio_trigger_detach_poll_func()` the return value from
`trig->ops->set_trigger_state(trig, false)` is checked with `if (ret)`.
However, in `iio_trigger_attach_poll_func()` it is checked with
`if (ret < 0)`. Fix this mismatch by only checking for `if (ret)` in
both places.

Signed-off-by: Waqar Hameed <[email protected]>
---
drivers/iio/industrialio-trigger.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index f207e36b12cc..18f83158f637 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -313,7 +313,7 @@ int iio_trigger_attach_poll_func(struct iio_trigger *trig,
/* Enable trigger in driver */
if (trig->ops && trig->ops->set_trigger_state && notinuse) {
ret = trig->ops->set_trigger_state(trig, true);
- if (ret < 0)
+ if (ret)
goto out_free_irq;
}

--
2.30.2



2023-07-15 17:33:58

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: Fix return value check for set_trigger_state()

On Thu, 13 Jul 2023 12:47:31 +0200
Waqar Hameed <[email protected]> wrote:

> In `iio_trigger_detach_poll_func()` the return value from
> `trig->ops->set_trigger_state(trig, false)` is checked with `if (ret)`.
> However, in `iio_trigger_attach_poll_func()` it is checked with
> `if (ret < 0)`. Fix this mismatch by only checking for `if (ret)` in
> both places.

I wouldn't have used fix in the title unless you have a case where this
causes problems (so a driver returns > 0 for this callback).

I have no problem with it as a consistency improvement but I don't
really want to see it backported (which will happen with fix in the
title ;)

I'll tweak that and with that done, applied to the togreg branch
of iio.git and pushed out initially as testing to let 0-day see if
it can find anything we missed.

Thanks,

Jonathan


>
> Signed-off-by: Waqar Hameed <[email protected]>
> ---
> drivers/iio/industrialio-trigger.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> index f207e36b12cc..18f83158f637 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -313,7 +313,7 @@ int iio_trigger_attach_poll_func(struct iio_trigger *trig,
> /* Enable trigger in driver */
> if (trig->ops && trig->ops->set_trigger_state && notinuse) {
> ret = trig->ops->set_trigger_state(trig, true);
> - if (ret < 0)
> + if (ret)
> goto out_free_irq;
> }
>