From nobody Tue Sep 15 19:47:30 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hksxM6n5lz6sh2R for ; Tue, 15 Sep 2026 19:47:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hksxM4hZNz3FnG for ; Tue, 15 Sep 2026 19:47:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789501655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ikr09wbOPaN+WO64u+zrc/fkCN69txEbhm+tG8INS4I=; b=WsWSZZ1fuJLqpw5ZpcDec1dnE/j5lrqLdeXAkBazJsdqcddXyYjRB518fX/CjzTSy0WQ0L neYzEgqXVaXZJ6VTdniHHpCUjoQqIVVZ2HnENUXmYRuz2UltWeuXfAJ8z/RuUJdZ57q2dR BZVYs2T2vlMg2RJ9NC9aKcLR+J44oxmy5GPKFt/iIiWz6vJ4AJx2JhJMKAKIjQ5nlr3rEf pfQuwV8H2nJpyKeaC52XsxD0eFE7bzadXjVtKObZCfCElhDx+XW/WisN4rZBbHWTCsUn5S geRqkAT4+Com2kSKFK1mqAyH/eFe4NDYh+hDspr8I/XCcyaA8prnjkQbwHeEnQ== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789501655; b=MPRUfTklxDNngUvqPVTcms0SmVkNOmLyKBzxgYMZwufPLlPTwlGSbbtqP9Xgh97EhYrMpn HQF2JOae5/mdMkIuhaGYx7T4xFvF4WNbZ9PEoR1uFYJ2R8dpE+6RgyNizg9+iYo953iBxW VgEB7awSTAFyKtvSz07PD92xIrPkZhSePfuzrx9kLmljq94um5qOOe9XDSOazNHsCTq3Jq muLS5qK8/07Y6rAX80V0W/wUlxd2hppjYZQ41bmgItDfZ1gyfJQ9ualkZ58u5oQIkYq5K1 XL94ilynKICd1LFEY+nwbvV9ZlWHROt0UsPz99JeIs3ocduuUOP1ksusWdMDHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789501655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ikr09wbOPaN+WO64u+zrc/fkCN69txEbhm+tG8INS4I=; b=IaFwKUb9qyTCNZqGF0drdTSN0AT3KiVAWtSsDNFJtD9aBf3MH0SuZLp4ONzRflF+w2OkL5 z/txS6hgmeMmxoHby0hFsEI73ugWaPyT86n9EbDQiN2JWRAaoTAjJebKi3GnNUnMoW69NR mFQ6szQzqxk4/4g9xPdkgWqRKZ8IU7qOkOlBOFSs5K9sM7vNp1ZCGyGQh1ufBTJiQmV7o6 fuyfxEmaK0EGEZYstx7ZMAyEY2Cp/zdlB3OFiiiBcIm5uPfogXeWaZUdW340Ms048skF+v jFuHS/Pf05c1qqxFE6eQ87DAFYdVxDVEmtS36Zln1OuNEIjSY/dlPMP89ggg3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hksxM3Vkrz1Ct9 for ; Tue, 15 Sep 2026 19:47:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2773b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 15 Sep 2026 19:47:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: ea71fa99827a - main - e1000: Express TSO restart policy without OACTIVE List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ea71fa99827ad4b7099de87e41e7af39ee1c10f6 Auto-Submitted: auto-generated Date: Tue, 15 Sep 2026 19:47:30 +0000 Message-Id: <6aa9a0d2.2773b.2a996d07@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=ea71fa99827ad4b7099de87e41e7af39ee1c10f6 commit ea71fa99827ad4b7099de87e41e7af39ee1c10f6 Author: Kevin Bowling AuthorDate: 2026-09-11 19:00:54 +0000 Commit: Kevin Bowling CommitDate: 2026-09-15 19:45:46 +0000 e1000: Express TSO restart policy without OACTIVE After a link speed change updates TSO capabilities, request a restart when iflib is running or the interface is administratively up. Leave an administratively down, stopped interface to apply the change at its next initialization. Do not infer initialization from IFF_DRV_OACTIVE, which also remains set after stop and failed initialization. Use iflib_is_running() for software admission and IFF_UP for intent; iflib retains responsibility for quiescing any partially initialized queues before restarting. This also permits a restart request for an administratively up interface before its first initialization attempt. Reviewed by: iflib (gallatin) MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59599 --- sys/dev/e1000/if_em.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 4961dd94072e..3ca8253a1457 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -6571,7 +6571,6 @@ em_automask_tso(if_ctx_t ctx) if_softc_ctx_t scctx = iflib_get_softc_ctx(ctx); if_t ifp = iflib_get_ifp(ctx); bool reset_needed; - int drvflags; if (!em_unsupported_tso && sc->link_speed && sc->link_speed != SPEED_1000 && @@ -6591,16 +6590,13 @@ em_automask_tso(if_ctx_t ctx) } /* - * Reset a running interface, or one being initialized while - * administratively up. OACTIVE remains set after iflib_stop(), so - * it alone cannot distinguish initialization from an interface that - * is down. In other states, the next initialization will apply the - * updated capabilities. + * Apply the new capabilities to a running or administratively-up + * interface, including one whose initialization has not completed. + * A stopped, administratively-down interface will apply them at the + * next initialization; driver flags do not describe that intent. */ - drvflags = if_getdrvflags(ifp); - reset_needed = (drvflags & IFF_DRV_RUNNING) != 0 || - ((drvflags & IFF_DRV_OACTIVE) != 0 && - (if_getflags(ifp) & IFF_UP) != 0); + reset_needed = iflib_is_running(ctx) || + (if_getflags(ifp) & IFF_UP) != 0; if (!reset_needed) return (false);