From nobody Thu Nov 20 00:55:17 2025 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 4dBfyt2Wngz6GbKh for ; Thu, 20 Nov 2025 00:55:18 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dBfyt1bVPz3dT9 for ; Thu, 20 Nov 2025 00:55:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763600118; 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=WC9K/Wvi2hKYK/9CTiLUnNh+amUqX7xsew+PJPkCN60=; b=tAZ9dS0TSS2RzfQNSw+BTzmpTCEBHTTpgNh19FYnrBFufyfAAHyWqQbch2UVl/xXEH8rvu y/HwaUyv+ZCZ8ciS1JTBCwpdnVhdUrUXGuoMyZhJSCo1y4G2IRCU+ZERYePhh/z8cLvKJ/ SkSz09/oV99/45pPeFP+GARo7EP1hV87I52VdvUdgRfD1H/YMewqSEzud9/chmkyT8LE5L xCjDzG7RylsTuK5UQXaGu3SHHC3YeZ05fJXzIteAXg2z816T+iHLQvvT0yW3XDO1mc5kv/ yfgIH8MK3sG/LeKKspm9sW7lH3pR/9WMKM+1L0DNveWeuASYaQiTUOJPV/MGew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763600118; 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=WC9K/Wvi2hKYK/9CTiLUnNh+amUqX7xsew+PJPkCN60=; b=B3c1K9iYkS4ocZ52I3o7hngtb3sU3LSAWw3GgomRxzfYaaYbs9o/4zka0dvw05v0JfAZDp t7qG8uMGBXHpmxlPI1IIw+uWmPd+sMiiEbn4psZtT9MVJg6Tln1281LGom4U5zaA0DeLPC IlONH649KTtTUo1j2MtTSQc0YfEsS+ofQKKXqNECyWyPiXmRRhjvWHe3aIGV5LPbtflWgR EdAaqVM/ljxp1IWbKi/PwYqK9gEwqXrHFG+EmjW6zagqdtMxj2b7QSUO3SwGXb93HT2eIE rSskn0/KdAwmMLbE+z0wnyZUei6bqWlePCSdh9qtupU7YSpWaX85yIuuE+g9Vg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763600118; a=rsa-sha256; cv=none; b=QzPUeYbnDbSV+SB6oZ4rSQX5z0qI+zBcMmoaht57SbO8pjWSWUAwBT+aP0a8cHvQp6pEh+ nMijo/2I724am6uNxr29GGhMMIdVeNZjnZlEril6EOmdDckaFbcEPkL8bz3d6M9TG3ENts i7CcCb/rXjgFyl1D7YZRcofE84xQjFhlusgurEAEMMvrWrDvk+fyNzlVhZxVJ27dJO+ChN 84/JzWUWCyB5tbdE2rQSy+RGiZVuFiSp6a6s7wXRPrbZrtREYqSdl0sL4eY8zY+Y7dLwHm n2Gf4jY+aNgEPpZG2drSHoGhXwFopcSO1UwpSoyIfU7JHhRVvHdcx65Cw5TehQ== 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 4dBfyt0hL3z1469 for ; Thu, 20 Nov 2025 00:55:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26a3d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 20 Nov 2025 00:55:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Gallatin Subject: git: 896dc30bc9bc - main - iflib: fix iflib_simple_transmit() when interface is down 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gallatin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 896dc30bc9bc2f7407b04ca4c08f88b1c7bf9d60 Auto-Submitted: auto-generated Date: Thu, 20 Nov 2025 00:55:17 +0000 Message-Id: <691e66f5.26a3d.4434d57f@gitrepo.freebsd.org> The branch main has been updated by gallatin: URL: https://cgit.FreeBSD.org/src/commit/?id=896dc30bc9bc2f7407b04ca4c08f88b1c7bf9d60 commit 896dc30bc9bc2f7407b04ca4c08f88b1c7bf9d60 Author: Andrew Gallatin AuthorDate: 2025-11-20 00:48:56 +0000 Commit: Andrew Gallatin CommitDate: 2025-11-20 00:48:56 +0000 iflib: fix iflib_simple_transmit() when interface is down Use the same check as iflib_if_transmit() to detect when the interface is down and return the proper error code, and also free the mbuf. This fixes an mbuf leak when a member of a lagg is brought down (and probably many other scenarios). Sponsored by: Netflix --- sys/net/iflib.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/net/iflib.c b/sys/net/iflib.c index ad2be119da7c..3181bdbcb849 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -7188,9 +7188,13 @@ iflib_simple_transmit(if_t ifp, struct mbuf *m) ctx = if_getsoftc(ifp); - if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != - IFF_DRV_RUNNING) - return (EBUSY); + if (__predict_false((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0 + || !LINK_ACTIVE(ctx))) { + DBG_COUNTER_INC(tx_frees); + m_freem(m); + return (ENETDOWN); + } + txq = iflib_simple_select_queue(ctx, m); mtx_lock(&txq->ift_mtx); error = iflib_encap(txq, &m);