From: Jonathan Cameron <jic23@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Josef Bacik" <josef@toxicpanda.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
stable <stable@kernel.org>,
"Jean-Baptiste Maneyrol" <jean-baptiste.maneyrol@tdk.com>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>
Subject: Re: [PATCH 12/15] iio: imu: inv_mpu6050: don't disable the IRQ under lock
Date: Sun, 15 Nov 2026 00:26:42 +0000 [thread overview]
Message-ID: <20261115002642.7f7f378b@jic23-hlaptop> (raw)
In-Reply-To: <20261101021422.0c9e0815@jic23-hlaptop>
On Sun, 1 Nov 2026 02:14:22 +0000
Jonathan Cameron <jic23@kernel.org> wrote:
> On Tue, 27 Oct 2026 17:19:16 +0100
> Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote:
>
> > From: Josef Bacik <josef@toxicpanda.com>
> >
> > If the chip is a wake-up source, inv_mpu_suspend() calls disable_irq() with
> > st->lock held. disable_irq() waits for the threaded handler, and
> > inv_mpu6050_interrupt_handle() takes st->lock to read the interrupt
> > status. If the chip raises an interrupt while the system is being
> > suspended, the handler waits for the lock, the suspend callback waits for
> > the handler, and the suspend hangs.
> >
> > Disable the interrupt once the lock has been dropped.
> >
> > Fixes: 305914d01807 ("iio: imu: inv_mpu6050: add WoM suspend wakeup with low-power mode")
> > Cc: stable <stable@kernel.org>
> > Cc: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
>
> This seems correct to me, but waiting on Jean-Baptiste for
> view from someone more familiar with the driver (and maybe
> able to give it a sanity check test!)
Ah well. I guess Jean-Baptiste missed this or is snowed under.
Either way I'm confident enough that you are right (and the very
low chance of regression given the change) so applied to the fixes-togreg
branch of iio.git.
Thanks,
Jonathan
>
> > Cc: David Lechner <dlechner@baylibre.com>
> > Cc: "Nuno Sá" <nuno.sa@analog.com>
> > Cc: Andy Shevchenko <andy@kernel.org>
> > Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 19 +++++++++++++++++--
> > 1 file changed, 17 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> > index 38c3f3b398d4..0ae9d497ccfd 100644
> > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> > @@ -2166,7 +2166,7 @@ static int inv_mpu_resume(struct device *dev)
> > return result;
> > }
> >
> > -static int inv_mpu_suspend(struct device *dev)
> > +static int __inv_mpu_suspend(struct device *dev, bool *disable)
> > {
> > struct iio_dev *indio_dev = dev_get_drvdata(dev);
> > struct inv_mpu6050_state *st = iio_priv(indio_dev);
> > @@ -2212,7 +2212,7 @@ static int inv_mpu_suspend(struct device *dev)
> > if (result)
> > return result;
> > enable_irq_wake(st->irq);
> > - disable_irq(st->irq);
> > + *disable = true;
> > } else {
> > result = inv_mpu6050_set_power_itg(st, false);
> > if (result)
> > @@ -2223,6 +2223,21 @@ static int inv_mpu_suspend(struct device *dev)
> > return 0;
> > }
> >
> > +static int inv_mpu_suspend(struct device *dev)
> > +{
> > + struct inv_mpu6050_state *st = iio_priv(dev_get_drvdata(dev));
> > + bool disable = false;
> > + int result;
> > +
> > + result = __inv_mpu_suspend(dev, &disable);
> > +
> > + /* Not under st->lock: this waits for the handler, which takes it */
> > + if (disable)
> > + disable_irq(st->irq);
> > +
> > + return result;
> > +}
> > +
> > static int inv_mpu_runtime_suspend(struct device *dev)
> > {
> > struct inv_mpu6050_state *st = iio_priv(dev_get_drvdata(dev));
> >
>
>
next prev parent reply other threads:[~2026-11-15 0:26 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 16:19 [PATCH 00/15] IIO: a bunch of llm-found fixes Greg Kroah-Hartman
2026-10-27 16:19 ` [PATCH 01/15] iio: buffer: let the block keep its DMA fence Greg Kroah-Hartman
2026-10-28 9:30 ` Nuno Sá
2026-10-29 14:40 ` Nuno Sá
2026-10-29 15:43 ` Benoît Monin
2026-11-15 0:23 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 02/15] iio: trigger: fail the attach if no sub-IRQ is left Greg Kroah-Hartman
2026-10-28 9:38 ` Nuno Sá
2026-11-01 2:53 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 03/15] iio: accel: adxl367: don't stay in standby on -EINVAL Greg Kroah-Hartman
2026-10-28 10:01 ` Nuno Sá
2026-10-27 16:19 ` [PATCH 04/15] iio: accel: adxl380: " Greg Kroah-Hartman
2026-10-28 10:02 ` Nuno Sá
2026-11-01 2:26 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 05/15] iio: adc: check the result of ad_sd_init() Greg Kroah-Hartman
2026-10-28 9:40 ` Nuno Sá
2026-11-01 2:23 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 06/15] iio: adc: ad7923: add the AD7927 to the SPI ID table Greg Kroah-Hartman
2026-10-28 9:35 ` Nuno Sá
2026-11-01 2:22 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 07/15] iio: addac: ad74413r: fix the values of set_multiple Greg Kroah-Hartman
2026-10-28 9:38 ` Nuno Sá
2026-11-01 2:21 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 08/15] iio: light: apds9306: push events to the IIO device Greg Kroah-Hartman
2026-11-01 2:20 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 09/15] iio: light: tsl2591: don't divide by zero in the dark Greg Kroah-Hartman
2026-10-30 8:24 ` Joshua Crofts
2026-10-27 16:19 ` [PATCH 10/15] iio: light: tsl2591: don't divide by zero with low gain Greg Kroah-Hartman
2026-10-28 2:13 ` Jonathan Cameron
2026-10-28 4:16 ` Greg Kroah-Hartman
2026-10-27 16:19 ` [PATCH 11/15] iio: hid-sensors: fix a division by zero Greg Kroah-Hartman
2026-11-01 2:17 ` Jonathan Cameron
2026-11-02 17:33 ` srinivas pandruvada
2026-11-02 22:11 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 12/15] iio: imu: inv_mpu6050: don't disable the IRQ under lock Greg Kroah-Hartman
2026-11-01 2:14 ` Jonathan Cameron
2026-11-15 0:26 ` Jonathan Cameron [this message]
2026-10-27 16:19 ` [PATCH 13/15] iio: proximity: sx9500: hand on probe deferral of GPIOs Greg Kroah-Hartman
2026-10-28 2:09 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 14/15] iio: scmi: use 64-bit divisions for rates and intervals Greg Kroah-Hartman
2026-10-28 1:46 ` Jonathan Cameron
2026-10-27 16:19 ` [PATCH 15/15] iio: sx9310: use the data of the I2C table Greg Kroah-Hartman
2026-10-27 16:25 ` Biju Das
2026-10-27 16:38 ` Andy Shevchenko
2026-11-01 2:11 ` Jonathan Cameron
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=20261115002642.7f7f378b@jic23-hlaptop \
--to=jic23@kernel.org \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=gregkh@linuxfoundation.org \
--cc=jean-baptiste.maneyrol@tdk.com \
--cc=josef@toxicpanda.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=stable@kernel.org \
/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
all inboxes | Powered by JetHome®