From nobody Tue Sep 15 19:47:30 2026 X-Original-To: dev-commits-src-main@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 4hksxG5fD9z6sgfP for ; Tue, 15 Sep 2026 19:47:30 +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 4hksxG58TSz3FsP for ; Tue, 15 Sep 2026 19:47:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789501650; 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=UKWSdtTA47A/f7eVXpt1f7m8XA0tS3EaNkkuPTSzyuVa9hvY5mf/TgrMOkTGeBJW52RCvF pNlIZZE+CYYqcRpooLCq91d19rpio/ADIJNt/0bNZoZnHERiU5ZmfiAog3F7j9lBYVwhvr Vn0+6lXen2zJEJWD5IYXH3p7LoW1dOaGFXbxUyLS0UmkQxsZl/UUh/aCZaIX2ocdIg2VEj BEHJg7W0xkhioj/mtseKeq4v0PA2hoZgt1rzCk3V5P9eCvoGYeq9KmELtpbCfonokMqCGs /pWf1bgM3BuJk0LmZIUeIUxDbAfZtikuwCxyP7L5EzYJLJVrPkk3PK42HOAm1Q== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789501650; b=n06d6KLhWH7MPZ5M1BCQR1SDTZ3WK/r7otpeI1YGxr+oz1ioty8NaTZ3MgO09uvin7PhJA ReTwAmk7UaDyN5GlTp/u9qhKAruusUp3zj8JVTJ5VNQveSedQ7pW76aZa+/XdI8kUBBM7+ 5H732e/irkIYEHvdKJI5RfXOLNa4dq9ku2Ou9VEWorc/Ofb/VqAYH9rhy1VUFx/6L2bXUD aA0u1GhBErTBM5OeBt7lKYolTjPOHkJRQjFG7mbgqCcwL3PLAPuLHz32ge15gF+eKZTVaf zUJBwaY3vfNCSndgtvwcDuXNAIsA9jVrSR4OpImGNRSTuSrMVp18v65HYBmm4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789501650; 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=sIW5YyRv0ga7HjSzPuRjQ9AGWavVN6juGvmkxlIPLQv4o+W3QDgdC6bN7HvqjBaJOgvaVj A6p3B9lQ/9TQKjzR9ZMmMdQFwhcqHUBDn/gCARJMDc1MU+ukZSWSdSf2ppjjsAdSreoF0B 2WUaGBHwylVKhH2YYnVsBJaXH4hyQ8xXn3g7anaI1XR3Bo2eVbabW94t7gXed9kJrYzPQc tMa80aqLyhQZucg0FoXJc4Nhx2bxp1vbMaGEndB1ZHbvsWbl7FmXi19QDq2/V/ihZmk2mg 976X2Y3rDIxdEjr4ijbgxFLvkkP/huXN6g8xB7nWUKlqryMHRHM2H4pvLWvF1w== 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 4hksxG3fKFz1Ct8 for ; Tue, 15 Sep 2026 19:47:30 +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 the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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);