[PATCH 5.4 018/408] r8169: fix data corruption issue on RTL8402

From: Greg Kroah-Hartman
Date: Tue Oct 27 2020 - 10:33:04 EST


From: Heiner Kallweit <hkallweit1@xxxxxxxxx>

[ Upstream commit ef9da46ddef071e1bbb943afbbe9b38771855554 ]

Petr reported that after resume from suspend RTL8402 partially
truncates incoming packets, and re-initializing register RxConfig
before the actual chip re-initialization sequence is needed to avoid
the issue.

Reported-by: Petr Tesarik <ptesarik@xxxxxxx>
Proposed-by: Petr Tesarik <ptesarik@xxxxxxx>
Tested-by: Petr Tesarik <ptesarik@xxxxxxx>
Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/net/ethernet/realtek/r8169_main.c | 4 ++++
1 file changed, 4 insertions(+)

--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -5514,6 +5514,10 @@ static int rtl8169_change_mtu(struct net
dev->mtu = new_mtu;
netdev_update_features(dev);

+ /* Reportedly at least Asus X453MA truncates packets otherwise */
+ if (tp->mac_version == RTL_GIGA_MAC_VER_37)
+ rtl_init_rxcfg(tp);
+
return 0;
}