Date: Fri, 07 Aug 2026 14:27:09 +0000 From: Kevin Bowling <kbowling@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: d025b84268ec - main - ixgbe: Apply the 82599 D3 link workaround only for D3 Message-ID: <6a75eb3d.44a15.5e2f06d9@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=d025b84268ec18d55c2d3088729cf4ad7673ecac commit d025b84268ec18d55c2d3088729cf4ad7673ecac Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2026-08-05 14:33:32 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2026-08-07 14:26:41 +0000 ixgbe: Apply the 82599 D3 link workaround only for D3 ixgbe_stop_mac_link_on_d3_82599() implements the workaround for 82599 erratum 33. It forces incompatible auto-negotiation settings before the device enters D3, and reset clears them when returning to D0. ixgbe_if_stop() is also used for ordinary interface reconfiguration and recovery. Those paths do not enter D3 and should not program this power-management workaround. They continue to stop the adapter and disable the transmit laser. Move the call to ixgbe_setup_low_power_mode(), after ixgbe_if_stop(). This preserves the required ordering for detach, shutdown, and suspend while avoiding the D3 settings during ordinary restarts. MFC after: 2 weeks --- sys/dev/ixgbe/if_ix.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 96188ca7ef7f..5ab30a8054a9 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -3788,6 +3788,10 @@ ixgbe_setup_low_power_mode(if_ctx_t ctx) ixgbe_if_stop(ctx); } + /* Disable the 82599 link only when actually entering D3. */ + if (hw->mac.type == ixgbe_mac_82599EB) + ixgbe_stop_mac_link_on_d3_82599(hw); + return error; } /* ixgbe_setup_low_power_mode */ @@ -4758,8 +4762,6 @@ ixgbe_if_stop(if_ctx_t ctx) ixgbe_reset_hw(hw); hw->adapter_stopped = false; ixgbe_stop_adapter(hw); - if (hw->mac.type == ixgbe_mac_82599EB) - ixgbe_stop_mac_link_on_d3_82599(hw); /* Turn off the laser - noop with no optics */ ixgbe_disable_tx_laser(hw);home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a75eb3d.44a15.5e2f06d9>
