From: Francesco Dolcini <francesco@dolcini.it>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Francesco Dolcini <francesco.dolcini@toradex.com>,
Francesco Dolcini <francesco@dolcini.it>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Frank Li <Frank.Li@nxp.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
Shawn Guo <shawnguo@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
Emanuele Ghidoli <emanuele.ghidoli@toradex.com>,
Ernest Van Hoecke <ernest.vanhoecke@toradex.com>,
Franz Schnyder <franz.schnyder@toradex.com>
Subject: Re: [PATCH v2 3/7] arm64: dts: freescale: Add Lino iMX93
Date: Wed, 16 Sep 2026 07:57:06 +0200 [thread overview]
Message-ID: <20260916055706.GA20310@francesco-nb> (raw)
In-Reply-To: <95dcbf3e-193d-460b-b6b9-cd412394e4c6@lunn.ch>
Hello Andrew,
thanks a lot for the detailed explanation.
On Tue, Sep 15, 2026 at 09:57:56PM +0200, Andrew Lunn wrote:
> > Would you mind to articulate in which situation such race condition can
> > happen?
>
> Most PHYs have a number of interrupt sources. Taking a random example:
>
> /* DM9161 Interrupt Register */
...
> The interrupt line is still low, indicating a link interrupt, but
> without an edge, no interrupt handler is triggered. The interrupt has
> been lost, and the link is reported down, despite being up.
>
> If however you are using level interrupts, as soon as the interrupt
> handler exits, and reenables the interrupt in the parent interrupt
> controller, it fires again, and the link interrupt is handled.
>
> If you have multiple interrupts indicated by a single line, you should
> use level handling in the parent interrupt controller.
I looked into the specific ethernet phy used here, TI DP83867, and
I would say that the falling edge interrupt should be safe on this
specific board/phy.
There is a single ISR register, and it's a single read/clear atomic
operation (MII_DP83867_ISR 0x13, dp83867_ack_interrupt). This is done
before doing any access to any other register, so the interrupt will
just fires again if anything happen. I do not see the race condition window.
I know it is not conclusive, but we have multiple boards with the
same edge interrupt configuration and the same ethernet phy (the
interrupt is wired directly to a TI SoC, that supports only edge
interrupt, not to a gpio expander) and we never had any failure. Our
test coverage is quite good IMO, commit 91a7cda1f4b8 ("net: phy: Fix
race condition on link status change") is something I did because our
testing had some sporadic failures for a different race condition.
What do you think? *IF* my reasoning is correct I would suggest to keep
the code as it is now.
Francesco
next prev parent reply other threads:[~2026-09-16 5:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 9:19 [PATCH v2 0/7] arm64: dts: freescale: Add Toradex Lino and OSM iMX91/iMX93 Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 1/7] dt-bindings: arm: fsl: Add Lino iMX91/iMX93 Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 2/7] dt-bindings: arm: fsl: Add Toradex OSM iMX91/iMX93 Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 3/7] arm64: dts: freescale: Add Lino iMX93 Francesco Dolcini
2026-09-11 14:30 ` Frank Li
2026-09-14 5:42 ` Francesco Dolcini
2026-09-14 14:28 ` Frank Li
2026-09-14 14:36 ` Francesco Dolcini
2026-09-17 14:08 ` Francesco Dolcini
2026-09-17 15:51 ` Frank Li
2026-09-17 17:00 ` Francesco Dolcini
2026-09-15 13:19 ` Andrew Lunn
2026-09-15 13:28 ` Francesco Dolcini
2026-09-15 16:49 ` Andrew Lunn
2026-09-15 17:57 ` Francesco Dolcini
2026-09-15 19:57 ` Andrew Lunn
2026-09-16 5:57 ` Francesco Dolcini [this message]
2026-09-16 12:27 ` Andrew Lunn
2026-09-16 12:43 ` Francesco Dolcini
2026-09-16 13:03 ` Andrew Lunn
2026-09-11 9:19 ` [PATCH v2 4/7] arm64: dts: freescale: imx93-lino: Add dahlia Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 5/7] arm64: dts: freescale: Add Lino iMX91 Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 6/7] arm64: dts: freescale: Add Toradex OSM iMX93 Francesco Dolcini
2026-09-11 9:19 ` [PATCH v2 7/7] arm64: dts: freescale: Add Toradex OSM iMX91 Francesco Dolcini
2026-09-23 20:16 ` [PATCH v2 0/7] arm64: dts: freescale: Add Toradex Lino and OSM iMX91/iMX93 Frank Li
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=20260916055706.GA20310@francesco-nb \
--to=francesco@dolcini.it \
--cc=Frank.Li@nxp.com \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=emanuele.ghidoli@toradex.com \
--cc=ernest.vanhoecke@toradex.com \
--cc=festevam@gmail.com \
--cc=francesco.dolcini@toradex.com \
--cc=franz.schnyder@toradex.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.