From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiner Kallweit Subject: [PATCH net-next] r8169: fix runtime suspend Date: Wed, 4 Jul 2018 21:11:29 +0200 Message-ID: <4f71964c-c777-5d3e-ed6a-1de08f01a079@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: "netdev@vger.kernel.org" To: Realtek linux nic maintainers , David Miller Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:50894 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752571AbeGDTLo (ORCPT ); Wed, 4 Jul 2018 15:11:44 -0400 Received: by mail-wm0-f65.google.com with SMTP id v25-v6so7585209wmc.0 for ; Wed, 04 Jul 2018 12:11:43 -0700 (PDT) Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: 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 --- drivers/net/ethernet/realtek/r8169.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index f80ac894..d598fdf0 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); -- 2.18.0