> @@ -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