From patchwork Mon Jan 8 20:39:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 857115 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jb9G9sCR"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zFnFM625Hz9s83 for ; Tue, 9 Jan 2018 07:39:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757394AbeAHUjc (ORCPT ); Mon, 8 Jan 2018 15:39:32 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:45996 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757045AbeAHUja (ORCPT ); Mon, 8 Jan 2018 15:39:30 -0500 Received: by mail-wm0-f66.google.com with SMTP id i186so246674wmi.4 for ; Mon, 08 Jan 2018 12:39:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=f1eeMF4UhfVaWdpZ6who53v2aF3Ll4baRmvia0Sejp0=; b=jb9G9sCRoKwecuVG3R99+muMiipTeHd41i/z0hSH2qh9iR5lYddNoI0HE4SrPNIPIj yoWq8JiVvCVOPczQk0b5Kjfn1jZA0B3aFNLzEHBEjpWsbZ4Xr4fpJfHMbDPDF3MPQr9c fW2hkcYmry7898naMIt9i4t6DQqcjwsZ2Fx3m+Bgho0AqLAL5CscI7AvaFhd7rVXORpI GDUeptdefb6n6HT1VGQ1pt0R62L6Bos6c6OmzlYkBHrCjZHIFm6nE+iKHIP0IIdgLwaa przGuasM/BM8nqms55yWvdl+CejsXwwTkzorURpvpixZhOIWfXzCiAkwfgbZTUN9quai pv5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=f1eeMF4UhfVaWdpZ6who53v2aF3Ll4baRmvia0Sejp0=; b=RzVxVwDJzWd7HrSXPrEfviSzQ8T6csyuJU6EFjnI/F3A0aWYMWB5RxmBXrpUT0WpCw KzkOBYDYMCLU0AifrL2ZPfhdLAxQsb92pO8T3eWVVWLZL9Quq/d6NkCfQTAb5Lf5FFaY OSDNOEqs73eyuzYrTWpy7tjygJxmReUSZ1cgaOaiGu0FYwCckkMJNmCcXdpk8UO7CIaZ c6YLtT4RMc3ZAKc+vof72xAtM8jUzEj3C/YaoJmlYuIKz+ImFm27l0EuVY3R0G1RVlCJ M7wckDXZjs/9Jw9LjSF7GgKvUiCmSAZ2q0UDXc8vLVvADxoPR0ssUfTx7FSkKAdJuPuK MuPQ== X-Gm-Message-State: AKwxytfNhjHfrkyoQH3al8gV0teX1kX1H73eZ5DlemYfs0LN1PHcZtSJ 6amfC+vlFp8U/epz8X4kWM/Rmw== X-Google-Smtp-Source: ACJfBouWqF4MUSTAdyIqtizwjfW3gWHUnjeQbI1fFu7cZ3qXmWTB64ZCPxyifQC1mekrM2f4w5Yllg== X-Received: by 10.28.106.4 with SMTP id f4mr1766981wmc.87.1515443969343; Mon, 08 Jan 2018 12:39:29 -0800 (PST) Received: from ?IPv6:2003:ea:8bce:9d00:8cd6:6141:b878:cef5? (p200300EA8BCE9D008CD66141B878CEF5.dip0.t-ipconnect.de. [2003:ea:8bce:9d00:8cd6:6141:b878:cef5]) by smtp.googlemail.com with ESMTPSA id q7sm8482621wrf.31.2018.01.08.12.39.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 12:39:28 -0800 (PST) From: Heiner Kallweit Subject: [PATCH net-next 1/3] r8169: remove unneeded rpm ops in rtl_shutdown To: Realtek linux nic maintainers , David Miller Cc: Francois Romieu , Florian Fainelli , "netdev@vger.kernel.org" References: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Message-ID: <0ad7d702-7793-76c9-e9c3-601cb8a70305@gmail.com> Date: Mon, 8 Jan 2018 21:39:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch reverts commit 2a15cd2ff488 "r8169: runtime resume before shutdown" from 2012. Few months after this change the underlying issue was solved in the PCI core with commit 3ff2de9ba1a2 "PCI/PM: Resume device before shutdown". Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 857f67beb..606fb7698 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -8195,9 +8195,6 @@ static void rtl_shutdown(struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata(pdev); struct rtl8169_private *tp = netdev_priv(dev); - struct device *d = &pdev->dev; - - pm_runtime_get_sync(d); rtl8169_net_suspend(dev); @@ -8215,8 +8212,6 @@ static void rtl_shutdown(struct pci_dev *pdev) pci_wake_from_d3(pdev, true); pci_set_power_state(pdev, PCI_D3hot); } - - pm_runtime_put_noidle(d); } static void rtl_remove_one(struct pci_dev *pdev) From patchwork Mon Jan 8 20:39:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 857116 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UAg8/fP9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zFnFP2Zrfz9s7M for ; Tue, 9 Jan 2018 07:39:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757420AbeAHUje (ORCPT ); Mon, 8 Jan 2018 15:39:34 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:43929 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757331AbeAHUjc (ORCPT ); Mon, 8 Jan 2018 15:39:32 -0500 Received: by mail-wr0-f193.google.com with SMTP id s13so9665557wra.10 for ; Mon, 08 Jan 2018 12:39:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=7eQocWA0B9y/CBRZp6YN5yXXwnF0naQphzo5xk//NYo=; b=UAg8/fP9a2XhCdwsRgRm67wfrOyNQ3vvKJvUecQnsZqFJWS5hpoT3Ij9wIoTmsKPho 53QmEnjS0n91nA0MmyWp2Y3yzSa9ksIcQu6iK5Glokl1vGWHIabNLPGeGRtY+Hmfc5Ic 57rkSzH8hK058IiPjgQm6Xve3C1oVD7ipfHdta3QPZZ0C2xO96B65fpPeZ5Yoh3bkMl8 b+fJyPZDU/CQKaQdZzTqOTP0R+rvMx2JO1sBaINnqDGSj9xzHtVvcGneOoC5rqj9F8kr mbm6ffFSClW3OQqOW31Msl881EDnboP764cjY+9nK6da4tLvITZDPlZO05y/oQqlcgCK 8tlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=7eQocWA0B9y/CBRZp6YN5yXXwnF0naQphzo5xk//NYo=; b=XugL0Pji+uuDZXHFDMaKSs4QF4oPs1pditZX7WKtGUb9FH18QQHvSJ/UW0wyJ5Mrme kmbH8gumtn1CuEcEFeQ5APEuKs3T70Cy6eP/0Z1GRDjDYwg8GFEz6OZkd4vPwO2+c+et xxPx3jxME8eOk3YsZoP9PPGbR+2gnPohe9XfCxTHzJsBF3JDayF4ihLnGGoVkd4QRZjj cbL8Y0tA1xvlFzLzNv3dc7MKEylyXABmvUpDaZ+zH1zXdh8F1KjTdcLh66ys8RqUqLzY PyrmnZiMVZKzEuslibMfMiIq3pz4cFSLCV6TUiYYE61BJHBMf/h06dCaMHAgRRFW0YY3 cpJQ== X-Gm-Message-State: AKGB3mKtFNn4+dYIW7sE5fbjEBZiuowsDlthIZgcKMIyv0JbigLrUo3h efyVVCOgkwHtYaiW5659RsqqFA== X-Google-Smtp-Source: ACJfBotsN6C1cgYRg1xBbPITwV8d1U+wNxKRnJvdfp6j89gO4VQgD/3rmiV1gr8yC+8ck2JbqKL/sg== X-Received: by 10.223.176.17 with SMTP id f17mr4311174wra.178.1515443970909; Mon, 08 Jan 2018 12:39:30 -0800 (PST) Received: from ?IPv6:2003:ea:8bce:9d00:8cd6:6141:b878:cef5? (p200300EA8BCE9D008CD66141B878CEF5.dip0.t-ipconnect.de. [2003:ea:8bce:9d00:8cd6:6141:b878:cef5]) by smtp.googlemail.com with ESMTPSA id x127sm11354547wmb.10.2018.01.08.12.39.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 12:39:30 -0800 (PST) From: Heiner Kallweit Subject: [PATCH net-next 2/3] r8169: improve runtime pm in rtl8169_check_link_status To: Realtek linux nic maintainers , David Miller Cc: Francois Romieu , Florian Fainelli , "netdev@vger.kernel.org" References: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Message-ID: Date: Mon, 8 Jan 2018 21:39:07 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch partially reverts commit e4fbce740f07 "r8169: Fix runtime power management" from 2010. At that time the suspend delay was 100ms and therefore suspending happened during initial aneg. Currently suspend delay is 5s, so suspend starts after aneg and the issue doesn't exist any longer. On my system aneg takes almost 3s, to be on the safe side let's increase the suspend delay to 10s. Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 606fb7698..29edaa4c6 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -1675,33 +1675,24 @@ static void rtl_link_chg_patch(struct rtl8169_private *tp) } } -static void __rtl8169_check_link_status(struct net_device *dev, - struct rtl8169_private *tp, - void __iomem *ioaddr, bool pm) +static void rtl8169_check_link_status(struct net_device *dev, + struct rtl8169_private *tp, + void __iomem *ioaddr) { if (tp->link_ok(ioaddr)) { rtl_link_chg_patch(tp); /* This is to cancel a scheduled suspend if there's one. */ - if (pm) - pm_request_resume(&tp->pci_dev->dev); + pm_request_resume(&tp->pci_dev->dev); netif_carrier_on(dev); if (net_ratelimit()) netif_info(tp, ifup, dev, "link up\n"); } else { netif_carrier_off(dev); netif_info(tp, ifdown, dev, "link down\n"); - if (pm) - pm_schedule_suspend(&tp->pci_dev->dev, 5000); + pm_schedule_suspend(&tp->pci_dev->dev, 10000); } } -static void rtl8169_check_link_status(struct net_device *dev, - struct rtl8169_private *tp, - void __iomem *ioaddr) -{ - __rtl8169_check_link_status(dev, tp, ioaddr, false); -} - #define WAKE_ANY (WAKE_PHY | WAKE_MAGIC | WAKE_UCAST | WAKE_BCAST | WAKE_MCAST) static u32 __rtl8169_get_wol(struct rtl8169_private *tp) @@ -7746,7 +7737,7 @@ static void rtl_slow_event_work(struct rtl8169_private *tp) rtl8169_pcierr_interrupt(dev); if (status & LinkChg) - __rtl8169_check_link_status(dev, tp, tp->mmio_addr, true); + rtl8169_check_link_status(dev, tp, tp->mmio_addr); rtl_irq_enable_all(tp); } From patchwork Mon Jan 8 20:39:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 857117 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="G4/Xb56J"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zFnFQ0wpVz9s83 for ; Tue, 9 Jan 2018 07:39:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757537AbeAHUjg (ORCPT ); Mon, 8 Jan 2018 15:39:36 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:33141 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757045AbeAHUje (ORCPT ); Mon, 8 Jan 2018 15:39:34 -0500 Received: by mail-wr0-f194.google.com with SMTP id p6so12074541wrd.0 for ; Mon, 08 Jan 2018 12:39:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=rY6TUQwQYqTRokstKnG8kDRC1X/ElGl8hT6UU2FF1Ng=; b=G4/Xb56J1Oo20SJ14FwEB+wN7C9O3Wcb/dr+Dk3WfQ6iZmkmHSCXxa3b6wj2144TyJ 2bkrmrFCBZ+qSrHEo+ecjm7qaL2q38VXHF4sXtAYVywHAbzh06LDbPkcTv5mJbELA7Ka CyDlswHJ+Ccej0yhryRIEcWTkMu4OimPlmUBVvy9LZ050l6ccXv24rtLPq6gqerDlrpf CnJbBMiCGEn3ACI1NnN6Dzc80kgFTIP1Srzbqp83AdayUTfc6EegaUbwKUJNqg0FKnwb 3xERr56JeLuHdUIeACX69IZdThJeWykNdDukotKLca8OQoOQUltkl1rxVTdFVJzB19gZ Okug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=rY6TUQwQYqTRokstKnG8kDRC1X/ElGl8hT6UU2FF1Ng=; b=GTu9LSd+hUUOZvi4Cn6k2t2DyySewKF7g5yZgRj65ILdFIiKcXLpIcPRg2mfmElh+x zK6hQNOMyAg5XuQl7G1D+1k4kOLTIvPcf7VKTTncrJJFxqg4WPY8gnPkE1UkL7oquHjt KHwVsTDoIggZgY4rL1KB92pibRP3LyKwuKzDL6N5ncZRhhRJj5s7L/yo6mm7NyGsFHi2 uc9vdeLg/EqHsa6EN4srH4zTSdme9GILMfqtoW/Ofj1XeRJqcAuhl6SiKuwIoXX17MyS pEhcxh5mOXXBV/qhnrcEfNQ76+KjZGZtdyz5eF9X3Hy8m+nRiadEkUS+KCYs9TyUP685 VMOQ== X-Gm-Message-State: AKGB3mITJG7Zaq+Cb/UBBWP1Qw8+0ioI4xjSqyRb6Qx8Cu93xTVlBrfq c+iUgmmGew/P7ShH5Gt4SZxvoA== X-Google-Smtp-Source: ACJfBot/tshWuGVVs8gCWC+hljK4Sej8SnOZWSn8LKNC9hH+lfcwew8xjPret9JlBABoMXUnXdlzmw== X-Received: by 10.223.131.165 with SMTP id 34mr2806499wre.192.1515443972342; Mon, 08 Jan 2018 12:39:32 -0800 (PST) Received: from ?IPv6:2003:ea:8bce:9d00:8cd6:6141:b878:cef5? (p200300EA8BCE9D008CD66141B878CEF5.dip0.t-ipconnect.de. [2003:ea:8bce:9d00:8cd6:6141:b878:cef5]) by smtp.googlemail.com with ESMTPSA id f5sm12954323wrh.24.2018.01.08.12.39.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jan 2018 12:39:31 -0800 (PST) From: Heiner Kallweit Subject: [PATCH net-next 3/3] r8169: improve runtime pm in general and suspend unused ports To: Realtek linux nic maintainers , David Miller Cc: Francois Romieu , Florian Fainelli , "netdev@vger.kernel.org" References: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Message-ID: <399fa6f9-99da-e5c2-2f17-7a1441946c68@gmail.com> Date: Mon, 8 Jan 2018 21:39:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <9bc4bf55-04d5-def8-40f2-346902988192@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org So far rpm doesn't cover cases like unused ports which are never brought up. If they are active at probe time they remain in this state. Included in this patch: - Let the idle notification check whether we can suspend and let it schedule the suspend. This way we don't need to have calls to pm_schedule_suspend in different places. - At the end of rtl_open and rtl_init_one send an idle notification to allow suspending if the link is down. If a cable is plugged in aneg is finished before the suspend timer expires and the suspend request is cancelled. - Change rtl8169_runtime_suspend to power down the chip if the interface is down. Successfully tested on a RTL8168evl (mac version 34). Signed-off-by: Heiner Kallweit --- drivers/net/ethernet/realtek/r8169.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 29edaa4c6..272c5962e 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -1689,7 +1689,7 @@ static void rtl8169_check_link_status(struct net_device *dev, } else { netif_carrier_off(dev); netif_info(tp, ifdown, dev, "link down\n"); - pm_schedule_suspend(&tp->pci_dev->dev, 10000); + pm_runtime_idle(&tp->pci_dev->dev); } } @@ -7950,7 +7950,7 @@ static int rtl_open(struct net_device *dev) rtl_unlock_work(tp); tp->saved_wolopts = 0; - pm_runtime_put_noidle(&pdev->dev); + pm_runtime_put_sync(&pdev->dev); rtl8169_check_link_status(dev, tp, ioaddr); out: @@ -8094,8 +8094,10 @@ static int rtl8169_runtime_suspend(struct device *device) struct net_device *dev = pci_get_drvdata(pdev); struct rtl8169_private *tp = netdev_priv(dev); - if (!tp->TxDescArray) + if (!tp->TxDescArray) { + rtl_pll_power_down(tp); return 0; + } rtl_lock_work(tp); tp->saved_wolopts = __rtl8169_get_wol(tp); @@ -8137,9 +8139,11 @@ static int rtl8169_runtime_idle(struct device *device) { struct pci_dev *pdev = to_pci_dev(device); struct net_device *dev = pci_get_drvdata(pdev); - struct rtl8169_private *tp = netdev_priv(dev); - return tp->TxDescArray ? -EBUSY : 0; + if (!netif_running(dev) || !netif_carrier_ok(dev)) + pm_schedule_suspend(device, 10000); + + return -EBUSY; } static const struct dev_pm_ops rtl8169_pm_ops = { @@ -8687,11 +8691,11 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) rtl8168_driver_start(tp); } - if (pci_dev_run_wake(pdev)) - pm_runtime_put_noidle(&pdev->dev); - netif_carrier_off(dev); + if (pci_dev_run_wake(pdev)) + pm_runtime_put_sync(&pdev->dev); + return 0; }