git: 3a4e037989f9 - main - ixgbe: Leave run-state publication to iflib during FDIR recovery

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Fri, 11 Sep 2026 21:19:41 UTC
The branch main has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=3a4e037989f91672974eeedf1fa81ce0b684beb7

commit 3a4e037989f91672974eeedf1fa81ce0b684beb7
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-09-11 18:56:17 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-09-11 21:19:12 +0000

    ixgbe: Leave run-state publication to iflib during FDIR recovery
    
    Rebuilding the Flow Director tables does not initialize the interface
    or restore its queues.  Do not set IFF_DRV_RUNNING from that operation:
    iflib owns the flag, and may have cleared it while a watchdog reset is
    pending.  Restoring it here could admit traffic before the deferred
    stop and initialization have run.
    
    Keep the table rebuild and Flow Director interrupt re-enable unchanged.
    This path is conditional on IXGBE_FDIR.
    
    MFC after:      2 weeks
    Sponsored by:   BBOX.io
---
 sys/dev/ixgbe/if_fdir.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/sys/dev/ixgbe/if_fdir.c b/sys/dev/ixgbe/if_fdir.c
index 37f45cb3808f..dcd930518d01 100644
--- a/sys/dev/ixgbe/if_fdir.c
+++ b/sys/dev/ixgbe/if_fdir.c
@@ -53,7 +53,6 @@ ixgbe_reinit_fdir(void *context)
 {
 	if_ctx_t ctx = context;
 	struct ixgbe_softc *sc = iflib_get_softc(ctx);
-	if_t ifp = iflib_get_ifp(ctx);
 
 	if (!(sc->feat_en & IXGBE_FEATURE_FDIR))
 		return;
@@ -63,8 +62,6 @@ ixgbe_reinit_fdir(void *context)
 	sc->fdir_reinit = 0;
 	/* re-enable flow director interrupts */
 	IXGBE_WRITE_REG(&sc->hw, IXGBE_EIMS, IXGBE_EIMS_FLOW_DIR);
-	/* Restart the interface */
-	if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
 } /* ixgbe_reinit_fdir */
 
 /************************************************************************