mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
r8169: fix packet truncation after S4 resume on RTL8168H/RTL8111H
After resume from S4 (hibernate), RTL8168H/RTL8111H truncates incoming packets. Packet captures show messages like "IP truncated-ip - 146 bytes missing!". The issue is caused by RxConfig not being properly re-initialized after resume. Re-initializing the RxConfig register before the chip re-initialization sequence avoids the truncation and restores correct packet reception. This follows the same pattern as commitef9da46dde("r8169: fix data corruption issue on RTL8402"). Fixes:6e1d0b8988("r8169:add support for RTL8168H and RTL8107E") Signed-off-by: Linmao Li <lilinmao@kylinos.cn> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com> Link: https://patch.msgid.link/20251009122549.3955845-1-lilinmao@kylinos.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
25718fdcbd
commit
70f92ab970
|
|
@ -4994,8 +4994,9 @@ static int rtl8169_resume(struct device *device)
|
|||
if (!device_may_wakeup(tp_to_dev(tp)))
|
||||
clk_prepare_enable(tp->clk);
|
||||
|
||||
/* Reportedly at least Asus X453MA truncates packets otherwise */
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_37)
|
||||
/* Some chip versions may truncate packets without this initialization */
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_37 ||
|
||||
tp->mac_version == RTL_GIGA_MAC_VER_46)
|
||||
rtl_init_rxcfg(tp);
|
||||
|
||||
return rtl8169_runtime_resume(device);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user