From: Heiner Kallweit Date: Wed, 4 Jul 2018 19:11:29 +0000 (+0200) Subject: r8169: fix runtime suspend X-Git-Tag: Ubuntu-5.2.0-15.16~3800^2~448 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=6fcf9b1d4d6cd38202247de5c0ac7d85c4483abb;p=mirror_ubuntu-eoan-kernel.git r8169: fix runtime suspend When runtime-suspending we configure WoL w/o touching saved_wolopts. If saved_wolopts == 0 we would power down the PHY in this case what's wrong. Therefore we have to check the actual chip WoL settings here. Fixes: 433f9d0ddcc6 ("r8169: improve saved_wolopts handling") Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index f80ac894ef92..d598fdf0470c 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -1534,12 +1534,6 @@ static void rtl8169_check_link_status(struct net_device *dev, #define WAKE_ANY (WAKE_PHY | WAKE_MAGIC | WAKE_UCAST | WAKE_BCAST | WAKE_MCAST) -/* Currently we only enable WoL if explicitly told by userspace to circumvent - * issues on certain platforms, see commit bde135a672bf ("r8169: only enable - * PCI wakeups when WOL is active"). Let's keep __rtl8169_get_wol() for the - * case that we want to respect BIOS settings again. - */ -#if 0 static u32 __rtl8169_get_wol(struct rtl8169_private *tp) { u8 options; @@ -1574,7 +1568,6 @@ static u32 __rtl8169_get_wol(struct rtl8169_private *tp) return wolopts; } -#endif static void rtl8169_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) { @@ -4470,7 +4463,7 @@ static void rtl_wol_suspend_quirk(struct rtl8169_private *tp) static bool rtl_wol_pll_power_down(struct rtl8169_private *tp) { - if (!netif_running(tp->dev) || !tp->saved_wolopts) + if (!netif_running(tp->dev) || !__rtl8169_get_wol(tp)) return false; rtl_speed_down(tp);