]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
net: phylink: make configuring clock-stop dependent on MAC support
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Sat, 8 Feb 2025 11:52:23 +0000 (11:52 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 12 Feb 2025 00:08:34 +0000 (16:08 -0800)
We should not be configuring the PHYs clock-stop settings unless the
MAC supports phylink managed EEE. Make this dependent on MAC support.

This was noticed in a suspicious RCU usage report from the kernel
test robot (the suspicious RCU usage due to calling phy_detach()
remains unaddressed, but is triggered by the error this was
generating.)

Fixes: 03abf2a7c654 ("net: phylink: add EEE management")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/E1tgjNn-003q0w-Pw@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phylink.c

index 214b62fba991ed04063fa35061b57b5522bf86b4..b00a315de060184813915c43b6b1bb0aa11f8171 100644 (file)
@@ -2265,12 +2265,15 @@ static int phylink_bringup_phy(struct phylink *pl, struct phy_device *phy,
        /* Allow the MAC to stop its clock if the PHY has the capability */
        pl->mac_tx_clk_stop = phy_eee_tx_clock_stop_capable(phy) > 0;
 
-       /* Explicitly configure whether the PHY is allowed to stop it's
-        * receive clock.
-        */
-       ret = phy_eee_rx_clock_stop(phy, pl->config->eee_rx_clk_stop_enable);
-       if (ret == -EOPNOTSUPP)
-               ret = 0;
+       if (pl->mac_supports_eee_ops) {
+               /* Explicitly configure whether the PHY is allowed to stop it's
+                * receive clock.
+                */
+               ret = phy_eee_rx_clock_stop(phy,
+                                           pl->config->eee_rx_clk_stop_enable);
+               if (ret == -EOPNOTSUPP)
+                       ret = 0;
+       }
 
        return ret;
 }