All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net] net: phy: fix phy_uses_state_machine()
Date: Mon, 1 Sep 2025 11:23:47 +0100	[thread overview]
Message-ID: <aLV0M2EiAnaxTxt2@shell.armlinux.org.uk> (raw)
In-Reply-To: <20250901093957.qfqnpqme7fms2tbv@skbuf>

On Mon, Sep 01, 2025 at 12:39:57PM +0300, Vladimir Oltean wrote:
> On Mon, Sep 01, 2025 at 10:34:41AM +0100, Russell King (Oracle) wrote:
> > On Sun, Aug 31, 2025 at 05:38:11PM +0100, Russell King (Oracle) wrote:
> > > phy_uses_state_machine() is called from the resume path (see
> > > mdio_bus_phy_resume()) which will be called for all devices whether
> > > they are connected to a network device or not.
> > > 
> > > phydev->phy_link_change is initialised by phy_attach_direct(), and
> > > overridden by phylink. This means that a never-connected PHY will
> > > have phydev->phy_link_change set to NULL, which causes
> > > phy_uses_state_machine() to return true. This is incorrect.
> > > 
> > > Fix the case where phydev->phy_link_change is NULL.
> > > 
> > > Reported-by: Xu Yang <xu.yang_2@nxp.com>
> > > Link: https://lore.kernel.org/r/20250806082931.3289134-1-xu.yang_2@nxp.com
> > > Fixes: fc75ea20ffb4 ("net: phy: allow MDIO bus PM ops to start/stop state machine for phylink-controlled PHY")
> > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> > > ---
> > > The provided Link: rather than Closes: is because there were two issues
> > > identified in that thread, and this patch only addresses one of them.
> > > Therefore, it is not correct to mark that issue closed.
> > > 
> > > Xu Yang reported this fixed the problem for him, and it is an oversight
> > > in the phy_uses_state_machine() test.
> > 
> > While looking at this after Vladimir's comments, I've realised that
> > phy_uses_state_machine() will also return true when a PHY has been
> > attached and detached by phylink - phydev->phy_link_change remains
> > set to phylink_phy_change after it has been detached. So, there will
> > definitely be a v2 for this.
> > 
> > -- 
> > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> > FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
> 
> Good point. Do you plan to modify phy_disconnect() to set
> phydev->phy_link_change = NULL?

No, I've put it in phy_detach() because this sequence:

	phy_attach_direct()
	phylink_bringup_phy()
		phydev->phy_link_change set
		error occurs
	phy_detach()

would result in phydev->phy_link_change remaining set if it was
only cleared in phy_disconnect().

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2025-09-01 10:24 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-31 16:38 [PATCH net] net: phy: fix phy_uses_state_machine() Russell King (Oracle)
2025-09-01  8:09 ` Vladimir Oltean
2025-09-01  8:42 ` Vladimir Oltean
2025-09-01  9:09   ` Russell King (Oracle)
2025-09-01  9:35     ` Vladimir Oltean
2025-09-01 10:05       ` Russell King (Oracle)
2025-09-01 10:36         ` Vladimir Oltean
2025-09-01 14:14           ` Russell King (Oracle)
2025-09-01 14:25             ` Vladimir Oltean
2025-09-01  9:34 ` Russell King (Oracle)
2025-09-01  9:39   ` Vladimir Oltean
2025-09-01 10:23     ` Russell King (Oracle) [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-09-07 20:44 Russell King (Oracle)
2025-09-08 13:37 ` Vladimir Oltean
2025-09-09 23:50 ` 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=aLV0M2EiAnaxTxt2@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=vladimir.oltean@nxp.com \
    /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.