From: Jonathan Cameron <jic23@kernel.org>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: "Ondřej Jirman" <megi@xff.cz>,
"Aren Moynihan" <aren@peacevolution.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
linux-iio@vger.kernel.org, phone-devel@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev,
"Willow Barraco" <contact@willowbarraco.fr>
Subject: Re: [PATCH v2 2/6] iio: light: stk3310: Implement vdd supply and power it off during suspend
Date: Sun, 28 Apr 2024 17:45:09 +0100 [thread overview]
Message-ID: <20240428174509.6de97d54@jic23-huawei> (raw)
In-Reply-To: <CAHp75VdR9HtWbSif+j8QHX5zG9xPF1GzUFY2s-0OjD3RAWD9-Q@mail.gmail.com>
On Wed, 24 Apr 2024 18:20:41 +0300
Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
> On Wed, Apr 24, 2024 at 3:59 PM Ondřej Jirman <megi@xff.cz> wrote:
> > On Wed, Apr 24, 2024 at 02:16:06AM GMT, Andy Shevchenko wrote:
> > > On Wed, Apr 24, 2024 at 1:41 AM Aren Moynihan <aren@peacevolution.org> wrote:
>
> ...
>
> > > > ret = stk3310_init(indio_dev);
> > > > if (ret < 0)
> > > > - return ret;
> > > > + goto err_vdd_disable;
> > >
> > > This is wrong. You will have the regulator being disabled _before_
> > > IRQ. Note, that the original code likely has a bug which sets states
> > > before disabling IRQ and removing a handler.
> >
> > How so? stk3310_init is called before enabling the interrupt.
>
> Exactly, IRQ is registered with devm and hence the error path and
> remove stages will got it in a wrong order.
>
> > Original code has a bug that IRQ is enabled before registering the
> > IIO device,
>
> Indeed, but this is another bug.
It shouldn't be. A device that produces interrupts before we have
told it to is a) buggy, b) almost certainly already had it's interrupt
masked due to spurious interrupt detection.
Definitely don't want to do it in the opposite order where userspace
could turn the device on and have it start generating interrupts before
the irq is registered. I'd rather assume non buggy hardware (and
that if there are bugs, the normal protections kick in) than
introduce a race into the software.
>
> > so if IRQ is triggered before registration, iio_push_event
> > from IRQ handler may be called on a not yet registered IIO device.
> >
> > Never saw it happen, though. :)
>
> Because nobody cares enough to enable DEBUG_SHIRQ
In most devices there is a status register and we should be
doing nothing unless that is set. Interestingly this device either
doesn't have one or the driver doesn't read it - it reads a flag only
and so will always push an event. Such a register read doesn't require
the IIO device registration to be complete.
There are corner cases where that isn't true that need to manually
mask at the host but they are rare.
There is also a basic level of defense in iio_push_event() against
that being called when the event interface is not registered.
Jonathan
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-04-28 16:45 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-23 22:33 [PATCH v2 0/6] iio: light: stk3310: support powering off during suspend Aren Moynihan
2024-04-23 22:33 ` [PATCH v2 1/6] dt-bindings: iio: light: stk33xx: add vdd and leda regulators Aren Moynihan
2024-04-24 4:28 ` Krzysztof Kozlowski
2024-04-23 22:33 ` [PATCH v2 2/6] iio: light: stk3310: Implement vdd supply and power it off during suspend Aren Moynihan
2024-04-23 23:16 ` Andy Shevchenko
2024-04-24 12:59 ` Ondřej Jirman
2024-04-24 15:20 ` Andy Shevchenko
2024-04-24 16:14 ` Ondřej Jirman
2024-04-24 17:31 ` Andy Shevchenko
2024-04-24 20:00 ` Ondřej Jirman
2024-04-28 16:48 ` Jonathan Cameron
2024-04-28 16:45 ` Jonathan Cameron [this message]
2024-04-25 0:00 ` Aren
2024-04-28 16:34 ` Jonathan Cameron
2024-04-24 12:34 ` kernel test robot
2024-04-25 5:31 ` Dan Carpenter
2024-04-28 16:53 ` Jonathan Cameron
2024-06-07 14:19 ` Aren
2024-04-23 22:33 ` [PATCH v2 3/6] iio: light: stk3310: Manage LED power supply Aren Moynihan
2024-04-23 23:08 ` Andy Shevchenko
2024-04-23 22:33 ` [PATCH v2 4/6] iio: light: stk3310: use dev_err_probe where possible Aren Moynihan
2024-04-23 22:33 ` [PATCH v2 5/6] iio: light: stk3310: log error if reading the chip id fails Aren Moynihan
2024-04-23 22:33 ` [PATCH v2 6/6] arm64: dts: allwinner: pinephone: Add power supplies to stk3311 Aren Moynihan
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=20240428174509.6de97d54@jic23-huawei \
--to=jic23@kernel.org \
--cc=andy.shevchenko@gmail.com \
--cc=aren@peacevolution.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=contact@willowbarraco.fr \
--cc=devicetree@vger.kernel.org \
--cc=jernej.skrabec@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=megi@xff.cz \
--cc=phone-devel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=samuel@sholland.org \
--cc=u.kleine-koenig@pengutronix.de \
--cc=wens@csie.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