From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: Stefan Agner <stefan@agner.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>,
Jakub Raczynski <j.raczynski@samsung.com>,
Alexander Stein <alexander.stein@ew.tq-group.com>,
Ovidiu Panait <ovidiu.panait.rb@renesas.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org,
regressions@lists.linux.dev
Subject: Re: [PATCH net v3] net: stmmac: resume PHY before hardware setup when opening the interface
Date: Mon, 3 Aug 2026 12:36:26 +0200 [thread overview]
Message-ID: <2d2cdcea-4ae2-41e2-afcf-713c569da0d8@bootlin.com> (raw)
In-Reply-To: <20260803095156.132827-1-stefan@agner.ch>
Hi Stefan,
On 8/3/26 11:51, Stefan Agner wrote:
> Since the referenced commit, changing the MTU on a running interface no
> longer disconnects and reconnects the PHY; __stmmac_release() merely
> stops phylink, which also suspends the PHY (BMCR power-down) when WoL
> is not enabled. __stmmac_open() then performs the DMA software reset in
> stmmac_hw_setup() before phylink_start() resumes the PHY again.
>
> IEEE 802.3 22.2.4.1.5 allows a PHY to stop its receive clock while
> powered down, and stmmac requires a running receive clock for the DMA
> software reset to complete (the phylink config sets mac_requires_rxc).
> On such setups, e.g. the RK3566-based Home Assistant Green with an
> RTL8211F-VD PHY in RGMII mode, any runtime MTU change now times out and
> leaves the interface dead:
>
> rk_gmac-dwmac fe010000.ethernet end0: Failed to reset the dma
> rk_gmac-dwmac fe010000.ethernet end0: stmmac_hw_setup: DMA engine initialization failed
> rk_gmac-dwmac fe010000.ethernet end0: __stmmac_open: Hw setup failed
> rk_gmac-dwmac fe010000.ethernet end0: failed reopening the interface after MTU change
>
> In the field this is triggered by NetworkManager applying an MTU while
> activating the connection, breaking networking entirely. The same
> regression has also been reported on i.MX8MP and reproduced on SoCFPGA
> based systems.
>
> Resume the PHY in __stmmac_open() before the hardware setup, making it
> the counterpart of the phylink_stop() in __stmmac_release(), like
> stmmac_resume() already does for the same reason. phylink_start() also
> resumes the PHY, but only after stmmac_hw_setup(), and it cannot be
> moved before the hardware setup since it may bring the link up
> immediately from a workqueue, racing with the initialization (see the
> comment in stmmac_resume()). For the regular ndo_open path the PHY has
> just been attached and is not suspended, in which case
> phylink_prepare_resume() does nothing.
>
> Fixes: db299a0c09e9 ("net: stmmac: move PHY handling out of __stmmac_open()/release()")
> Link: https://github.com/home-assistant/operating-system/issues/4858
> Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Stefan Agner <stefan@agner.ch>
Tested-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Do you feel confident following-up with the phylink renames, or should
I add that to my todolist ?
Thanks
Maxime
next prev parent reply other threads:[~2026-08-03 10:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-03 9:51 [PATCH net v3] net: stmmac: resume PHY before hardware setup when opening the interface Stefan Agner
2026-08-03 10:36 ` Maxime Chevallier [this message]
2026-08-03 11:42 ` Stefan Agner
2026-08-05 1:20 ` patchwork-bot+netdevbpf
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=2d2cdcea-4ae2-41e2-afcf-713c569da0d8@bootlin.com \
--to=maxime.chevallier@bootlin.com \
--cc=alexander.stein@ew.tq-group.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=j.raczynski@samsung.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=ovidiu.panait.rb@renesas.com \
--cc=pabeni@redhat.com \
--cc=regressions@lists.linux.dev \
--cc=rmk+kernel@armlinux.org.uk \
--cc=stefan@agner.ch \
/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.