public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Joshua Crofts <joshua.crofts1@gmail.com>
Cc: "Jonathan Cameron" <jic23@kernel.org>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 07/18] iio: magnetometer: ak8975: modernize polling loops with iopoll() macros
Date: Wed, 6 May 2026 16:08:21 +0300	[thread overview]
Message-ID: <afs9RRAldVXWqVaZ@ashevche-desk.local> (raw)
In-Reply-To: <CALoEA-xBcPzoy4T3+0edrnQLV++k2VN5ozWan8L+gnV5P3CLFw@mail.gmail.com>

On Wed, May 06, 2026 at 12:50:09PM +0200, Joshua Crofts wrote:
> On Wed, 6 May 2026 at 09:01, Joshua Crofts <joshua.crofts1@gmail.com> wrote:
> > On Wed, 6 May 2026 at 08:53, Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > > On Tue, May 05, 2026 at 01:46:03PM +0200, Joshua Crofts via B4 Relay wrote:

...

> > > > +     ret = read_poll_timeout(i2c_smbus_read_byte_data, val, val != 0,
> > > > +                             poll_ms * USEC_PER_MSEC,
> > > > +                             timeout_ms * USEC_PER_MSEC,
> > > > +                             true,
> > > > +                             client, data->def->ctrl_regs[ST1]);
> > > > +     if (ret)
> > > > +             return ret;
> > > > +     if (val < 0) {
> > > > +             dev_err(&client->dev, "Error in reading ST1\n");
> > > > +             return val;
> > > >       }
> > > > -     if (!timeout_ms)
> > > > -             return -ETIMEDOUT;
> > > >
> > > > -     return read_status;
> > > > +     return val;
> > >
> > > Besides the unneeded return val duplication, I think this is the wrong location
> > > for this check and it changes behaviour (really subtle change!).
> 
> Hmm, rechecking this, I agree with the unnecessary return, but I don't think it
> changes the behaviour of the function.
> 
> > > Before if the last iteration gives an error from the device, we return
> > > -ETIMEDOUT instead of the whatever the i2c_smbus_read_byte_data() returns.
> 
> Looking at the original function, it always prioritized returning the
> i2c_smbus_read_byte_data() error code before returning -ETIMEDOUT (even
> on the final iteration). In the new version, if the i2c read is bad,
> the read_poll_timeout()
> code will still be zero, therefore allowing the code to jump to the
> i2c value check
> and then return if bad (this is still the same behaviour IMO).

It looks like I stand corrected! Indeed, we have two conditions to follow, one
is provided in a macro parameter, and the other is for timeout. Here the Q is
which one logically should be checked first? More thinking on it tends to your
direction as it follows usual pattern as we check the return values (errors)
from the callee first *then* validate the results.

> Maybe I'm looking at it from the wrong angle though. AFAIC Sashiko nitpicked
> everything except this (but yes, it's still an AI so we have to tread lightly).

> Same goes for the other patch where you raised this issue.

Yep.

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2026-05-06 13:08 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-05 11:45 [PATCH v5 00/18] iio: magnetometer: ak8975: modernize and cleanup driver Joshua Crofts via B4 Relay
2026-05-05 11:45 ` [PATCH v5 01/18] iio: magnetometer: ak8975: sort headers alphabetically Joshua Crofts via B4 Relay
2026-05-05 23:46   ` Maxwell Doose
2026-05-06 16:36     ` Jonathan Cameron
2026-05-05 11:45 ` [PATCH v5 02/18] iio: magnetometer: ak8975: update headers per IWYU principle Joshua Crofts via B4 Relay
2026-05-06  0:38   ` Maxwell Doose
2026-05-06 16:37     ` Jonathan Cameron
2026-05-05 11:45 ` [PATCH v5 03/18] iio: magnetometer: ak8975: replace usleep_range() with fsleep() Joshua Crofts via B4 Relay
2026-05-05 20:30   ` Maxwell Doose
2026-05-05 21:26     ` Joshua Crofts
2026-05-05 21:42       ` Maxwell Doose
2026-05-05 21:59         ` Joshua Crofts
2026-05-05 22:12           ` Maxwell Doose
2026-05-06  6:19       ` Andy Shevchenko
2026-05-06  6:35         ` Maxwell Doose
2026-05-06 16:39           ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 04/18] iio: magnetometer: ak8975: change 'u8*' to 'u8 *' in cast Joshua Crofts via B4 Relay
2026-05-06  0:47   ` Maxwell Doose
2026-05-06  6:30   ` Andy Shevchenko
2026-05-06 16:40     ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 05/18] iio: magnetometer: ak8975: fix wrong errno on return Joshua Crofts via B4 Relay
2026-05-06 16:41   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 06/18] iio: magnetometer: ak8975: pass conversion timeouts as arguments Joshua Crofts via B4 Relay
2026-05-06  6:34   ` Andy Shevchenko
2026-05-06  7:02     ` Joshua Crofts
2026-05-06  7:20       ` Andy Shevchenko
2026-05-06  7:28         ` Joshua Crofts
2026-05-06  7:32           ` Andy Shevchenko
2026-05-06 16:51             ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 07/18] iio: magnetometer: ak8975: modernize polling loops with iopoll() macros Joshua Crofts via B4 Relay
2026-05-06  6:53   ` Andy Shevchenko
2026-05-06  7:01     ` Joshua Crofts
2026-05-06 10:50       ` Joshua Crofts
2026-05-06 13:08         ` Andy Shevchenko [this message]
2026-05-06 16:52           ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 08/18] iio: magnetometer: ak8975: check if gpiod read was successful Joshua Crofts via B4 Relay
2026-05-06  1:09   ` Maxwell Doose
2026-05-06  1:42     ` Maxwell Doose
2026-05-06  7:11       ` Andy Shevchenko
2026-05-06  7:13         ` Maxwell Doose
2026-05-06  7:16           ` Andy Shevchenko
2026-05-06  7:21             ` Maxwell Doose
2026-05-06  7:31             ` Joshua Crofts
2026-05-06  7:05     ` Joshua Crofts
2026-05-06 16:48       ` Jonathan Cameron
2026-05-06  7:07     ` Andy Shevchenko
2026-05-06  7:11       ` Maxwell Doose
2026-05-06  6:53   ` Andy Shevchenko
2026-05-06  7:07     ` Joshua Crofts
2026-05-05 11:46 ` [PATCH v5 09/18] iio: magnetometer: ak8975: avoid using temporary variable Joshua Crofts via B4 Relay
2026-05-06 16:54   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 10/18] iio: magnetometer: ak8975: drop duplicate NULL check Joshua Crofts via B4 Relay
2026-05-06 16:55   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 11/18] iio: magnetometer: ak8975: remove duplicate error message Joshua Crofts via B4 Relay
2026-05-06 16:56   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 12/18] iio: magnetometer: ak8975: reduce usage of magic lengths of the buffer Joshua Crofts via B4 Relay
2026-05-06 16:56   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 13/18] iio: magnetometer: ak8975: unify return code variable name Joshua Crofts via B4 Relay
2026-05-06 16:57   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 14/18] iio: magnetometer: ak8975: switch to using managed resources Joshua Crofts via B4 Relay
2026-05-05 14:34   ` Joshua Crofts
2026-05-06  8:21     ` Andy Shevchenko
2026-05-06 17:09   ` Jonathan Cameron
2026-05-05 11:46 ` [PATCH v5 15/18] iio: magnetometer: ak8975: consistently use 'data' parameter Joshua Crofts via B4 Relay
2026-05-05 11:46 ` [PATCH v5 16/18] iio: magnetometer: ak8975: unify messages with help of dev_err_probe() Joshua Crofts via B4 Relay
2026-05-05 11:46 ` [PATCH v5 17/18] iio: magnetometer: ak8975: use temporary variable for struct device Joshua Crofts via B4 Relay
2026-05-05 11:46 ` [PATCH v5 18/18] iio: magnetometer: ak8975: make use of the macros from bits.h Joshua Crofts via B4 Relay
2026-05-06 17:12   ` Jonathan Cameron
2026-05-06 21:25     ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=afs9RRAldVXWqVaZ@ashevche-desk.local \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=joshua.crofts1@gmail.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox