Re: [PATCH net-next v4 3/4] net: macb: Add ARP support to WOL

From: Andrew Lunn
Date: Mon Jun 10 2024 - 08:46:39 EST


> @@ -3294,22 +3292,15 @@ static int macb_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
>
> /* Pass the order to phylink layer */
> ret = phylink_ethtool_set_wol(bp->phylink, wol);
> - /* Don't manage WoL on MAC if handled by the PHY
> - * or if there's a failure in talking to the PHY
> - */
> - if (!ret || ret != -EOPNOTSUPP)
> + /* Don't manage WoL on MAC if there's a failure in talking to the PHY */
> + if (!!ret && ret != -EOPNOTSUPP)
> return ret;

The comment is wrong. You could be happily talking to the PHY, it just
does not support what you asked it to do.

> @@ -5257,6 +5247,12 @@ static int __maybe_unused macb_suspend(struct device *dev)
> return 0;
>
> if (bp->wol & MACB_WOL_ENABLED) {
> + /* Check for IP address in WOL ARP mode */
> + ifa = rcu_dereference(__in_dev_get_rcu(bp->dev)->ifa_list);
> + if ((bp->wolopts & WAKE_ARP) && !ifa) {
> + netdev_err(netdev, "IP address not assigned\n");

"IP address not assigned" on its own does not give a user whos suspend
fails a very good idea why. "IP address not assigned as required by
WoL walk ARP" would be better.


Andrew

---
pw-bot: cr