* [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h
@ 2026-09-25 7:10 Oleksij Rempel
2026-10-01 0:30 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 4+ messages in thread
From: Oleksij Rempel @ 2026-09-25 7:10 UTC (permalink / raw)
To: Andrew Lunn, nic_swsd, Heiner Kallweit, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: Oleksij Rempel, Dennis Piecha, stable, kernel, linux-kernel, netdev
Force EEE off on the RTL8168h/8111h (RTL_GIGA_MAC_VER_46) at PHY connect
with phy_disable_eee().
Commit 202fef9bbbf5 ("net: phy: realtek: fix EEE advertisement write on
the internal PHY MMD path") made EEE actually advertise on the generic
Realtek PHY; the write had been a no-op before. On the RTL8168h that
un-masks a latent defect: once EEE negotiates, RX silently stalls after
~7-20 minutes. The carrier stays up, no counter or dmesg moves, and only
"ip link set down/up" recovers it; disabling EEE keeps the link stable.
Root-causing the RTL8168h LPI/RX path needs hardware not available now, so
disable EEE for this version. Use phy_disable_eee() rather than dropping
the version from rtl_supports_eee(): the latter also skips
rtl_enable_tx_lpi(), whose disable branch clears the MAC TX-LPI bits (ERI
0x1b0[1:0]) on link up. rtl_hw_start_8168h_1() does not clear them (the
RTL8402/RTL8106e init does), so a warm reboot from an EEE-active state
could otherwise leave TX-LPI asserted while the PHY no longer negotiates
EEE. Keeping the version EEE-capable preserves that clear path. This also
covers the RTL8168M, which shares RTL_GIGA_MAC_VER_46.
Reported-by: Dennis Piecha <d.piecha@ymail.com>
Closes: https://lore.kernel.org/all/353419280.954808.1790290283530@mail.yahoo.com/
Fixes: 202fef9bbbf5 ("net: phy: realtek: fix EEE advertisement write on the internal PHY MMD path")
Cc: stable@vger.kernel.org
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
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 ec4fc21fa21f..ee1bc9bd0447 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -5484,6 +5484,12 @@ static int r8169_mdio_register(struct rtl8169_private *tp)
phy_disable_eee_mode(tp->phydev,
ETHTOOL_LINK_MODE_2500baseT_Full_BIT);
+ /* Keep EEE off but the version stays EEE-capable so that link-up
+ * still clears the MAC TX-LPI bits.
+ */
+ if (tp->mac_version == RTL_GIGA_MAC_VER_46)
+ phy_disable_eee(tp->phydev);
+
/* PHY will be woken up in rtl_open() */
phy_suspend(tp->phydev);
--
2.47.3
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h
2026-09-25 7:10 [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h Oleksij Rempel
@ 2026-10-01 0:30 ` patchwork-bot+netdevbpf
2026-10-06 11:19 ` Dennis Piecha
0 siblings, 1 reply; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-10-01 0:30 UTC (permalink / raw)
To: Oleksij Rempel
Cc: andrew, nic_swsd, hkallweit1, davem, edumazet, kuba, pabeni,
d.piecha, stable, kernel, linux-kernel, netdev
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 25 Sep 2026 09:10:40 +0200 you wrote:
> Force EEE off on the RTL8168h/8111h (RTL_GIGA_MAC_VER_46) at PHY connect
> with phy_disable_eee().
>
> Commit 202fef9bbbf5 ("net: phy: realtek: fix EEE advertisement write on
> the internal PHY MMD path") made EEE actually advertise on the generic
> Realtek PHY; the write had been a no-op before. On the RTL8168h that
> un-masks a latent defect: once EEE negotiates, RX silently stalls after
> ~7-20 minutes. The carrier stays up, no counter or dmesg moves, and only
> "ip link set down/up" recovers it; disabling EEE keeps the link stable.
>
> [...]
Here is the summary with links:
- [net,v1,1/1] r8169: disable EEE on RTL8168h/8111h
https://git.kernel.org/netdev/net/c/3cdeaef1754a
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h
2026-10-01 0:30 ` patchwork-bot+netdevbpf
@ 2026-10-06 11:19 ` Dennis Piecha
2026-10-07 6:01 ` Heiner Kallweit
0 siblings, 1 reply; 4+ messages in thread
From: Dennis Piecha @ 2026-10-06 11:19 UTC (permalink / raw)
To: Oleksij Rempel, patchwork-bot+netdevbpf
Cc: andrew, nic_swsd, hkallweit1, davem, edumazet, kuba, pabeni,
stable, kernel, linux-kernel, netdev
Hi Oleksij,
I tested this on the affected machine with a Home Assistant OS test
build that includes the patch (kernel 6.18.54-haos).
Hardware: Intel NUC11ATKPE, RTL8168h/8111h (XID 541), FRITZ!Box 6690
as link partner, no VLANs.
With the patch the NIC reports EEE as not supported and the RX stall
is gone: more than 4 hours without a single drop, everything on
defaults, no workaround. Before, on 6.18.52 without the patch, it
stalled every 7-20 minutes.
Since 6.18.y stable is affected (that's where the PHY EEE fix was
backported), it would be great to see this there too.
Tested-by: Dennis Piecha <d.piecha@ymail.com>
Thanks for the fix!
Dennis
Am Donnerstag, 1. Oktober 2026 um 02:30:16 MESZ hat <patchwork-bot+netdevbpf@kernel.org> Folgendes geschrieben:
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 25 Sep 2026 09:10:40 +0200 you wrote:
> Force EEE off on the RTL8168h/8111h (RTL_GIGA_MAC_VER_46) at PHY connect
> with phy_disable_eee().
>
> Commit 202fef9bbbf5 ("net: phy: realtek: fix EEE advertisement write on
> the internal PHY MMD path") made EEE actually advertise on the generic
> Realtek PHY; the write had been a no-op before. On the RTL8168h that
> un-masks a latent defect: once EEE negotiates, RX silently stalls after
> ~7-20 minutes. The carrier stays up, no counter or dmesg moves, and only
> "ip link set down/up" recovers it; disabling EEE keeps the link stable.
>
> [...]
Here is the summary with links:
- [net,v1,1/1] r8169: disable EEE on RTL8168h/8111h
https://git.kernel.org/netdev/net/c/3cdeaef1754a
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h
2026-10-06 11:19 ` Dennis Piecha
@ 2026-10-07 6:01 ` Heiner Kallweit
0 siblings, 0 replies; 4+ messages in thread
From: Heiner Kallweit @ 2026-10-07 6:01 UTC (permalink / raw)
To: Dennis Piecha, Oleksij Rempel, patchwork-bot+netdevbpf
Cc: andrew, nic_swsd, davem, edumazet, kuba, pabeni, stable, kernel,
linux-kernel, netdev
On 06.10.2026 13:19, Dennis Piecha wrote:
> Hi Oleksij,
>
> I tested this on the affected machine with a Home Assistant OS test
> build that includes the patch (kernel 6.18.54-haos).
>
> Hardware: Intel NUC11ATKPE, RTL8168h/8111h (XID 541), FRITZ!Box 6690
> as link partner, no VLANs.
>
> With the patch the NIC reports EEE as not supported and the RX stall
> is gone: more than 4 hours without a single drop, everything on
> defaults, no workaround. Before, on 6.18.52 without the patch, it
> stalled every 7-20 minutes.
>
I'm pretty sure that EEE was active for this chip version in earlier times.
Are you sure it's not an issue on the link partner side? Did you test with a
switch between your system and the FRITZ!Box?
> Since 6.18.y stable is affected (that's where the PHY EEE fix was
> backported), it would be great to see this there too.
>
> Tested-by: Dennis Piecha <d.piecha@ymail.com>
>
> Thanks for the fix!
> Dennis
>
>
>
>
>
>
> Am Donnerstag, 1. Oktober 2026 um 02:30:16 MESZ hat <patchwork-bot+netdevbpf@kernel.org> Folgendes geschrieben:
>
>
>
>
>
> Hello:
>
> This patch was applied to netdev/net.git (main)
> by Jakub Kicinski <kuba@kernel.org>:
>
> On Fri, 25 Sep 2026 09:10:40 +0200 you wrote:
>> Force EEE off on the RTL8168h/8111h (RTL_GIGA_MAC_VER_46) at PHY connect
>> with phy_disable_eee().
>>
>> Commit 202fef9bbbf5 ("net: phy: realtek: fix EEE advertisement write on
>> the internal PHY MMD path") made EEE actually advertise on the generic
>> Realtek PHY; the write had been a no-op before. On the RTL8168h that
>> un-masks a latent defect: once EEE negotiates, RX silently stalls after
>> ~7-20 minutes. The carrier stays up, no counter or dmesg moves, and only
>> "ip link set down/up" recovers it; disabling EEE keeps the link stable.
>>
>> [...]
>
> Here is the summary with links:
> - [net,v1,1/1] r8169: disable EEE on RTL8168h/8111h
> https://git.kernel.org/netdev/net/c/3cdeaef1754a
>
> You are awesome, thank you!
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-07 6:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-25 7:10 [PATCH net v1 1/1] r8169: disable EEE on RTL8168h/8111h Oleksij Rempel
2026-10-01 0:30 ` patchwork-bot+netdevbpf
2026-10-06 11:19 ` Dennis Piecha
2026-10-07 6:01 ` Heiner Kallweit
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®