Re: [PATCH] iio: humidity: ens210: remove compiler warning workaround
From: Maxwell Doose
Date: Fri May 22 2026 - 09:15:12 EST
On Fri, May 22, 2026 at 7:37 AM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
>
> On Fri, 22 May 2026 00:25:08 -0500
> Maxwell Doose <m32285159@xxxxxxxxx> wrote:
>
> > Hi David,
> >
> > On Thu, May 21, 2026 at 8:26 PM David Lechner <dlechner@xxxxxxxxxxxx> wrote:
> > >
> > > Rewrite IIO_CHAN_INFO_RAW case to avoid needing to add unreachable code
> > > to work around a compiler warning.
> > >
> > > When scoped_guard() was first introduced, compilers could not see when
> > > it returned unconditionally from inside the hidden for loop. This has
> > > since been fixed in the macro definition. So removing the `return
> > > -EINVAL` should be enough. Still, we can improve readability, decrease
> > > indentation and avoid the hidden for loop by rewriting the case without
> > > scoped_guard().
> > >
> > > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx>
> > > ---
> > > drivers/iio/humidity/ens210.c | 19 ++++++++++---------
> > > 1 file changed, 10 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/drivers/iio/humidity/ens210.c b/drivers/iio/humidity/ens210.c
> > > index 22ad208e6aa6..49543fc389bf 100644
> > > --- a/drivers/iio/humidity/ens210.c
> > > +++ b/drivers/iio/humidity/ens210.c
> > > @@ -149,15 +149,16 @@ static int ens210_read_raw(struct iio_dev *indio_dev,
> > > int ret;
> > >
> > > switch (mask) {
> > > - case IIO_CHAN_INFO_RAW:
> > > - scoped_guard(mutex, &data->lock) {
> > > - ret = ens210_get_measurement(
> > > - indio_dev, channel->type == IIO_TEMP, val);
> > > - if (ret)
> > > - return ret;
> > > - return IIO_VAL_INT;
> > > - }
> > > - return -EINVAL; /* compiler warning workaround */
> > > + case IIO_CHAN_INFO_RAW: {
> > > + guard(mutex)(&data->lock);
> > > +
> > > + ret = ens210_get_measurement(indio_dev, channel->type == IIO_TEMP,
> > > + val);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + return IIO_VAL_INT;
> > > + }
> > > case IIO_CHAN_INFO_SCALE:
> > > if (channel->type == IIO_TEMP) {
> > > *val = 15;
> > >
> >
> > I'm questioning how that initial commit got merged at all, they
> > could've just used guard()() with {} (the kind of thing to make me
> > want to take a look at this file even further!). Visually looks good
> > to me but will follow-up later with rb if it all checks out.
>
> The guard stuff was fairly new at the time so we were still working out what
> patterns make sense. Took a little while for consensus to emerge!
>
Thanks for the insight, I wouldn't have been around here for that
early period of guard()() but still pretty interesting.
>
> Anyhow patch is obviously correct and a cleanup so applied to the testing
> branch of iio.git. Happy to add tags etc for next few days
> (or drop it if I'm missing something!)
>
Yeah if you want to add my rb you can but don't feel like you have to!
best regards,
max
> Jonathan
>
> >
> > best regards,
> > max
> >
> >
> > > ---
> > > base-commit: e1a29334a9c043defe7a9363fa76d399d3fdfbec
> > > change-id: 20260521-iio-humidity-ens210-remove-hack-7c5a6496547c
> > >
> > > Best regards,
> > > --
> > > David Lechner <dlechner@xxxxxxxxxxxx>
> > >
> > >
> >
>