]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: phy: realtek: add error handling to rtl8211f_get_wol
authorDaniel Braunwarth <daniel.braunwarth@kuka.com>
Tue, 24 Jun 2025 14:17:33 +0000 (16:17 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 25 Jun 2025 23:54:31 +0000 (16:54 -0700)
We should check if the WOL settings was successfully read from the PHY.

In case this fails we cannot just use the error code and proceed.

Signed-off-by: Daniel Braunwarth <daniel.braunwarth@kuka.com>
Reported-by: Jon Hunter <jonathanh@nvidia.com>
Closes: https://lore.kernel.org/baaa083b-9a69-460f-ab35-2a7cb3246ffd@nvidia.com
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250624-realtek_fixes-v1-1-02a0b7c369bc@kuka.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/realtek/realtek_main.c

index c3dcb62574303374666b46a454cd4e10de455d24..dd0d675149ad7f9730f04ba1aea82e02b15dfb2c 100644 (file)
@@ -436,9 +436,15 @@ static irqreturn_t rtl8211f_handle_interrupt(struct phy_device *phydev)
 
 static void rtl8211f_get_wol(struct phy_device *dev, struct ethtool_wolinfo *wol)
 {
+       int wol_events;
+
        wol->supported = WAKE_MAGIC;
-       if (phy_read_paged(dev, RTL8211F_WOL_SETTINGS_PAGE, RTL8211F_WOL_SETTINGS_EVENTS)
-           & RTL8211F_WOL_EVENT_MAGIC)
+
+       wol_events = phy_read_paged(dev, RTL8211F_WOL_SETTINGS_PAGE, RTL8211F_WOL_SETTINGS_EVENTS);
+       if (wol_events < 0)
+               return;
+
+       if (wol_events & RTL8211F_WOL_EVENT_MAGIC)
                wol->wolopts = WAKE_MAGIC;
 }