aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-16 06:58:18 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-16 10:18:36 +0000
commit6248e7de9d6c0f14294afc5792170a68de6a3b53 (patch)
treeb7ac494fb71e7cb70ff7823c398ba63f8a864748
parent7accd803e28cf6051cac69e614eec6f24d5c77cc (diff)
igb: Reinitialize through iflib after media changes
A media change can require a complete controller reset. Resetting the controller directly from the admin task leaves iflib rings, filters, and interface state programmed for the pre-reset controller. Request an iflib reset for every media change. This already was done when SR-IOV was active; use the same lifecycle for the ordinary PF case. MFC after: 2 weeks Sponsored by: BBOX.io
-rw-r--r--sys/dev/e1000/if_em.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 05e64a9d5013..1622468bd2a0 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -3397,12 +3397,9 @@ em_if_update_admin_status(if_ctx_t ctx)
hw->mac.type >= igb_mac_min) {
hw->dev_spec._82575.media_changed = false;
sc->flags |= IGB_MEDIA_RESET;
- if (igb_iov_enabled(sc)) {
- iflib_request_reset(ctx);
- iflib_admin_intr_deferred(ctx);
- reset_requested = true;
- } else
- em_reset(ctx);
+ iflib_request_reset(ctx);
+ iflib_admin_intr_deferred(ctx);
+ reset_requested = true;
}
/* Only do TSO on gigabit for older chips due to errata */
if (hw->mac.type < igb_mac_min)