]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: phy: clear EEE runtime state in PHY_HALTED/PHY_ERROR
authorOleksij Rempel <o.rempel@pengutronix.de>
Fri, 12 Sep 2025 13:20:00 +0000 (15:20 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 15 Sep 2025 23:16:03 +0000 (16:16 -0700)
Clear EEE runtime flags when the PHY transitions to HALTED or ERROR
and the state machine drops the link. This avoids stale EEE state being
reported via ethtool after the PHY is stopped or hits an error.

This change intentionally only clears software runtime flags and avoids
MDIO accesses in HALTED/ERROR. A follow-up patch will address other
link state variables.

Suggested-by: Russell King (Oracle) <linux@armlinux.org.uk>
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/20250912132000.1598234-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy.c

index c02da57a4da5e385744de2990a6acc4e8b72a9f5..e046dd858f151aec132e9980049431e2d1b832b3 100644 (file)
@@ -1551,6 +1551,8 @@ static enum phy_state_work _phy_state_machine(struct phy_device *phydev)
        case PHY_ERROR:
                if (phydev->link) {
                        phydev->link = 0;
+                       phydev->eee_active = false;
+                       phydev->enable_tx_lpi = false;
                        phy_link_down(phydev);
                }
                state_work = PHY_STATE_WORK_SUSPEND;