mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
net: usb: lan78xx: Improve error handling in WoL operations
Enhance error handling in Wake-on-LAN (WoL) operations: - Log a warning in `lan78xx_get_wol` if `lan78xx_read_reg` fails. - Check and handle errors from `device_set_wakeup_enable` and `phy_ethtool_set_wol` in `lan78xx_set_wol`. - Ensure proper cleanup with a unified error handling path. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20241216120941.1690908-7-o.rempel@pengutronix.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
d09de7ebd4
commit
01e2f4d55b
|
|
@ -1857,6 +1857,7 @@ static void lan78xx_get_wol(struct net_device *netdev,
|
|||
|
||||
ret = lan78xx_read_reg(dev, USB_CFG0, &buf);
|
||||
if (unlikely(ret < 0)) {
|
||||
netdev_warn(dev->net, "failed to get WoL %pe", ERR_PTR(ret));
|
||||
wol->supported = 0;
|
||||
wol->wolopts = 0;
|
||||
} else {
|
||||
|
|
@ -1888,10 +1889,13 @@ static int lan78xx_set_wol(struct net_device *netdev,
|
|||
|
||||
pdata->wol = wol->wolopts;
|
||||
|
||||
device_set_wakeup_enable(&dev->udev->dev, (bool)wol->wolopts);
|
||||
ret = device_set_wakeup_enable(&dev->udev->dev, (bool)wol->wolopts);
|
||||
if (ret < 0)
|
||||
goto exit_pm_put;
|
||||
|
||||
phy_ethtool_set_wol(netdev->phydev, wol);
|
||||
ret = phy_ethtool_set_wol(netdev->phydev, wol);
|
||||
|
||||
exit_pm_put:
|
||||
usb_autopm_put_interface(dev->intf);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user