From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Jakub Kicinski <kuba@kernel.org>
Cc: linux-phy@lists.infradead.org, davem@davemloft.net,
maxime.chevallier@bootlin.com, alexandre.torgue@foss.st.com,
mohd.anwar@oss.qualcomm.com, neil.armstrong@linaro.org,
hkallweit1@gmail.com, mcoquelin.stm32@gmail.com,
netdev@vger.kernel.org, edumazet@google.com,
linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, vkoul@kernel.org,
andrew@lunn.ch, pabeni@redhat.com, andrew+netdev@lunn.ch,
linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [net-next,05/14] net: stmmac: add stmmac core serdes support
Date: Tue, 20 Jan 2026 05:04:53 +0000 [thread overview]
Message-ID: <aW8M9ZiiftGBQIRM@shell.armlinux.org.uk> (raw)
In-Reply-To: <20260119192125.1245102-1-kuba@kernel.org>
On Mon, Jan 19, 2026 at 11:21:25AM -0800, Jakub Kicinski wrote:
> This is an AI-generated review of your patch. The human sending this
> email has considered the AI review valid, or at least plausible.
>
> For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
> ---
> net: stmmac: add stmmac core serdes support
>
> This commit adds SerDes PHY support to the stmmac core driver, moving it
> from platform glue into the integrated PCS driver. The SerDes is managed
> through phy_init/phy_exit for lifecycle and phy_power_on/phy_power_off
> for the power state.
>
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
> > index 2f826fe7229b..4d1902f3a58f 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
>
> [ ... ]
>
> > static int dwmac_integrated_pcs_enable(struct phylink_pcs *pcs)
> > {
> > struct stmmac_pcs *spcs = phylink_pcs_to_stmmac_pcs(pcs);
> > + struct stmmac_priv *priv = spcs->priv;
> > + int ret;
> >
> > - stmmac_mac_irq_modify(spcs->priv, 0, spcs->int_mask);
> > + ret = dwmac_serdes_power_on(priv);
> > + if (ret)
> > + return ret;
> > +
> > + if (spcs->interface != PHY_INTERFACE_MODE_NA) {
> > + ret = dwmac_serdes_set_mode(priv, spcs->interface);
> > + if (ret)
> > + return ret;
> ^^^^^^^^^^
>
> If dwmac_serdes_set_mode() fails here, doesn't this leave the SerDes in
> a powered-on state? dwmac_serdes_power_on() succeeded at this point but
> there's no corresponding dwmac_serdes_power_off() call before returning
> the error.
>
> Looking at phylink_major_config(), it appears to discard the return
> value from phylink_pcs_enable(), so the caller won't know to call
> pcs_disable() to clean up the power state.
This AI analysis is incorrect.
By the time phylink_pcs_enable() has been called, the PCS is already
plumbed in to phylink. It _will_ have phylink_pcs_disable() called on
it at some point in the future, either by having the PCS displaced
by another in a subsequent phylink_major_config(), or by a driver
calling phylink_stop().
If we clean up here, then we will call dwmac_serdes_power_off() twice.
Yes, it's not "nice" but that's the way phylink is right now, and
without reworking phylink to record that pcs_enable() has failed
to avoid a subsequent pcs_disable(), and to stop the major config
(which then potentially causes a whole bunch of other issues). I
don't even want to think about that horrid scenario at the moment.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
WARNING: multiple messages have this Message-ID (diff)
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Jakub Kicinski <kuba@kernel.org>
Cc: linux-phy@lists.infradead.org, davem@davemloft.net,
maxime.chevallier@bootlin.com, alexandre.torgue@foss.st.com,
mohd.anwar@oss.qualcomm.com, neil.armstrong@linaro.org,
hkallweit1@gmail.com, mcoquelin.stm32@gmail.com,
netdev@vger.kernel.org, edumazet@google.com,
linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, vkoul@kernel.org,
andrew@lunn.ch, pabeni@redhat.com, andrew+netdev@lunn.ch,
linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [net-next,05/14] net: stmmac: add stmmac core serdes support
Date: Tue, 20 Jan 2026 05:04:53 +0000 [thread overview]
Message-ID: <aW8M9ZiiftGBQIRM@shell.armlinux.org.uk> (raw)
In-Reply-To: <20260119192125.1245102-1-kuba@kernel.org>
On Mon, Jan 19, 2026 at 11:21:25AM -0800, Jakub Kicinski wrote:
> This is an AI-generated review of your patch. The human sending this
> email has considered the AI review valid, or at least plausible.
>
> For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
> ---
> net: stmmac: add stmmac core serdes support
>
> This commit adds SerDes PHY support to the stmmac core driver, moving it
> from platform glue into the integrated PCS driver. The SerDes is managed
> through phy_init/phy_exit for lifecycle and phy_power_on/phy_power_off
> for the power state.
>
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
> > index 2f826fe7229b..4d1902f3a58f 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.c
>
> [ ... ]
>
> > static int dwmac_integrated_pcs_enable(struct phylink_pcs *pcs)
> > {
> > struct stmmac_pcs *spcs = phylink_pcs_to_stmmac_pcs(pcs);
> > + struct stmmac_priv *priv = spcs->priv;
> > + int ret;
> >
> > - stmmac_mac_irq_modify(spcs->priv, 0, spcs->int_mask);
> > + ret = dwmac_serdes_power_on(priv);
> > + if (ret)
> > + return ret;
> > +
> > + if (spcs->interface != PHY_INTERFACE_MODE_NA) {
> > + ret = dwmac_serdes_set_mode(priv, spcs->interface);
> > + if (ret)
> > + return ret;
> ^^^^^^^^^^
>
> If dwmac_serdes_set_mode() fails here, doesn't this leave the SerDes in
> a powered-on state? dwmac_serdes_power_on() succeeded at this point but
> there's no corresponding dwmac_serdes_power_off() call before returning
> the error.
>
> Looking at phylink_major_config(), it appears to discard the return
> value from phylink_pcs_enable(), so the caller won't know to call
> pcs_disable() to clean up the power state.
This AI analysis is incorrect.
By the time phylink_pcs_enable() has been called, the PCS is already
plumbed in to phylink. It _will_ have phylink_pcs_disable() called on
it at some point in the future, either by having the PCS displaced
by another in a subsequent phylink_major_config(), or by a driver
calling phylink_stop().
If we clean up here, then we will call dwmac_serdes_power_off() twice.
Yes, it's not "nice" but that's the way phylink is right now, and
without reworking phylink to record that pcs_enable() has failed
to avoid a subsequent pcs_disable(), and to stop the major config
(which then potentially causes a whole bunch of other issues). I
don't even want to think about that horrid scenario at the moment.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2026-01-20 5:05 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-19 12:32 [PATCH net-next 00/14] net: stmmac: SerDes, PCS, BASE-X, and inband goodies Russell King (Oracle)
2026-01-19 12:32 ` Russell King (Oracle)
2026-01-19 12:33 ` [PATCH net-next 01/14] net: stmmac: qcom-ethqos: remove mac_base Russell King (Oracle)
2026-01-19 12:33 ` Russell King (Oracle)
2026-01-19 13:59 ` Bartosz Golaszewski
2026-01-19 13:59 ` Bartosz Golaszewski
2026-01-19 12:33 ` [PATCH net-next 02/14] net: stmmac: qcom-ethqos: convert to set_clk_tx_rate() method Russell King (Oracle)
2026-01-19 12:33 ` Russell King (Oracle)
2026-01-19 14:00 ` Bartosz Golaszewski
2026-01-19 14:00 ` Bartosz Golaszewski
2026-01-19 12:33 ` [PATCH net-next 03/14] phy: qcom-sgmii-eth: add .set_mode() and .validate() methods Russell King (Oracle)
2026-01-19 12:33 ` Russell King (Oracle)
2026-01-19 14:00 ` Bartosz Golaszewski
2026-01-19 14:00 ` Bartosz Golaszewski
2026-01-21 7:10 ` Vinod Koul
2026-01-21 7:10 ` Vinod Koul
2026-01-19 12:33 ` [PATCH net-next 04/14] net: stmmac: wrap phylink's rx_clk_stop functions Russell King (Oracle)
2026-01-19 12:33 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 05/14] net: stmmac: add stmmac core serdes support Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 19:21 ` [net-next,05/14] " Jakub Kicinski
2026-01-19 19:21 ` Jakub Kicinski
2026-01-20 5:04 ` Russell King (Oracle) [this message]
2026-01-20 5:04 ` Russell King (Oracle)
2026-01-20 8:18 ` Vladimir Oltean
2026-01-20 8:18 ` Vladimir Oltean
2026-01-20 10:12 ` Russell King (Oracle)
2026-01-20 10:12 ` Russell King (Oracle)
2026-01-20 12:11 ` Vladimir Oltean
2026-01-20 12:11 ` Vladimir Oltean
2026-01-21 14:46 ` Russell King (Oracle)
2026-01-21 14:46 ` Russell King (Oracle)
2026-01-21 16:23 ` Vladimir Oltean
2026-01-21 16:23 ` Vladimir Oltean
2026-01-21 17:33 ` Russell King (Oracle)
2026-01-21 17:33 ` Russell King (Oracle)
2026-01-22 11:29 ` Vladimir Oltean
2026-01-22 11:29 ` Vladimir Oltean
2026-01-20 8:42 ` Vladimir Oltean
2026-01-20 8:42 ` Vladimir Oltean
2026-01-20 10:14 ` Russell King (Oracle)
2026-01-20 10:14 ` Russell King (Oracle)
2026-01-20 23:32 ` Jakub Kicinski
2026-01-20 23:32 ` Jakub Kicinski
2026-01-19 12:34 ` [PATCH net-next 06/14] net: stmmac: qcom-ethqos: convert to dwmac generic SerDes support Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 07/14] net: stmmac: move most PCS register definitions to stmmac_pcs.c Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 08/14] net: stmmac: handle integrated PCS phy_intf_sel separately Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 09/14] net: stmmac: add BASE-X support to integrated PCS Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 10/14] net: stmmac: use integrated PCS for BASE-X modes Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 13:20 ` Maxime Chevallier
2026-01-19 13:20 ` Maxime Chevallier
2026-01-19 12:34 ` [PATCH net-next 11/14] net: stmmac: add struct stmmac_pcs_info Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 13:23 ` Maxime Chevallier
2026-01-19 13:23 ` Maxime Chevallier
2026-01-19 12:34 ` [PATCH net-next 12/14] net: stmmac: add support for reading inband SGMII status Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 19:21 ` [net-next,12/14] " Jakub Kicinski
2026-01-19 19:21 ` Jakub Kicinski
2026-01-19 12:34 ` [PATCH net-next 13/14] net: stmmac: configure SGMII AN control according to phylink Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 12:34 ` [PATCH net-next 14/14] net: stmmac: report PCS configuration changes Russell King (Oracle)
2026-01-19 12:34 ` Russell King (Oracle)
2026-01-19 14:27 ` Russell King (Oracle)
2026-01-19 14:27 ` Russell King (Oracle)
-- strict thread matches above, loose matches on Subject: below --
2026-01-14 17:45 [PATCH net-next 05/14] net: stmmac: add stmmac core serdes support Russell King (Oracle)
2026-01-16 2:57 ` [net-next,05/14] " Jakub Kicinski
2026-01-16 2:57 ` Jakub Kicinski
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=aW8M9ZiiftGBQIRM@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=maxime.chevallier@bootlin.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=mohd.anwar@oss.qualcomm.com \
--cc=neil.armstrong@linaro.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vkoul@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.