Skip to content

Commit c83ca5a

Browse files
hkallweitkuba-moo
authored andcommitted
net: phy: fix phy_disable_eee
genphy_c45_write_eee_adv() becomes a no-op if phydev->supported_eee is cleared. That's not what we want because this function is still needed to clear the EEE advertisement register(s). Fill phydev->eee_broken_modes instead to ensure that userspace can't re-enable EEE advertising. Fixes: b55498f ("net: phy: add phy_disable_eee") Signed-off-by: Heiner Kallweit <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 9268abe commit c83ca5a

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/net/phy/phy_device.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3012,10 +3012,11 @@ EXPORT_SYMBOL(phy_support_eee);
30123012
*/
30133013
void phy_disable_eee(struct phy_device *phydev)
30143014
{
3015-
linkmode_zero(phydev->supported_eee);
30163015
linkmode_zero(phydev->advertising_eee);
30173016
phydev->eee_cfg.tx_lpi_enabled = false;
30183017
phydev->eee_cfg.eee_enabled = false;
3018+
/* don't let userspace re-enable EEE advertisement */
3019+
linkmode_fill(phydev->eee_broken_modes);
30193020
}
30203021
EXPORT_SYMBOL_GPL(phy_disable_eee);
30213022

0 commit comments

Comments
 (0)