From: Heiner Kallweit <hkallwe...@gmail.com> Date: Mon, 24 Sep 2018 21:58:04 +0200
> phy_suspend doesn't always recognize that WoL is enabled and therefore > suspends the PHY when it should not. First idea to address the issue > was to reuse checks used in mdio_bus_phy_may_suspend which check > whether relevant devices are wakeup-enabled. > Florian raised some concerns because drivers may enable wakeup even if > WoL isn't enabled (e.g. certain USB network drivers). > > The new approach focuses on reducing the risk to break existing stuff. > We add a flag wol_enabled to struct net_device which is set in > ethtool_set_wol(). Then this flag is checked in phy_suspend(). > This doesn't cover 100% of the cases yet (e.g. if WoL is enabled w/o > explicit configuration), but it covers the most relevant cases with > very little risk of regressions. > > v2: > - Fix a typo Series applied, thanks. Please deal with the extra 4 byte size of net_device in net-next. Thanks.