[SRU][M/L][PATCH 2/2] r8169: fix network lost after resume on DASH systems
Aaron Ma
aaron.ma at canonical.com
Thu Nov 30 03:27:25 UTC 2023
From: ChunHao Lin <hau at realtek.com>
BugLink: https://bugs.launchpad.net/bugs/2043786
Device that support DASH may be reseted or powered off during suspend.
So driver needs to handle DASH during system suspend and resume. Or
DASH firmware will influence device behavior and causes network lost.
Fixes: b646d90053f8 ("r8169: magic.")
Cc: stable at vger.kernel.org
Reviewed-by: Heiner Kallweit <hkallweit1 at gmail.com>
Signed-off-by: ChunHao Lin <hau at realtek.com>
Link: https://lore.kernel.org/r/20231109173400.4573-3-hau@realtek.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
(cherry picked from commit 868c3b95afef4883bfb66c9397482da6840b5baf)
Signed-off-by: Aaron Ma <aaron.ma at canonical.com>
---
drivers/net/ethernet/realtek/r8169_main.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index e9c14afd61f1..4aa2fc59923e 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4666,10 +4666,16 @@ static void rtl8169_down(struct rtl8169_private *tp)
rtl8169_cleanup(tp);
rtl_disable_exit_l1(tp);
rtl_prepare_power_down(tp);
+
+ if (tp->dash_type != RTL_DASH_NONE)
+ rtl8168_driver_stop(tp);
}
static void rtl8169_up(struct rtl8169_private *tp)
{
+ if (tp->dash_type != RTL_DASH_NONE)
+ rtl8168_driver_start(tp);
+
pci_set_master(tp->pci_dev);
phy_init_hw(tp->phydev);
phy_resume(tp->phydev);
--
2.34.1
More information about the kernel-team
mailing list