aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-06 08:21:35 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-07 14:01:43 +0000
commit545779a99290b7b7d94dece6c096ce230be91ff9 (patch)
tree30ce904f18839c12ab536c8f933ca005a3561397 /sys/dev
parent31285bddf21e986e006e5405acc2c4626e43d190 (diff)
ixgbe: Re-enable the SFP laser during initialization
ixgbe_if_stop() disables the transmit laser on every 82599 SFP fiber port, but the iflib initialization path did not re-enable it. Re-enable the laser before deferred SFP module setup so interface reinitialization cannot leave either single-speed or multispeed optics dark. The hardware wrapper is a no-op when laser control is unavailable. The placement follows Intel ix-3.4.39; this version deliberately applies to every SFP port affected by the stop path. MFC after: 1 week
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ixgbe/if_ix.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 519c82304f54..96188ca7ef7f 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -1836,6 +1836,8 @@ ixgbe_config_link(if_ctx_t ctx)
sfp = ixgbe_is_sfp(hw);
if (sfp) {
+ /* ixgbe_if_stop() disables it on every 82599 SFP port. */
+ ixgbe_enable_tx_laser(hw);
sc->task_requests |= IXGBE_REQUEST_TASK_MOD;
iflib_admin_intr_deferred(ctx);
} else {