From nobody Sat Jan 17 00:44:08 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 4dtHzD6Phyz6P6m7 for ; Sat, 17 Jan 2026 00:44:08 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dtHzD5cgDz4B7p for ; Sat, 17 Jan 2026 00:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768610648; 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=sqQTlygsOEF2sc+L5g10cXiP6F2YiDJSJ7YnOm24h7E=; b=E2YP3KVtSla6VNCRviwW/n3GVL9A/QCfUr89Z8u7vnWysYlk/Y3ioe5lgD2a8JGt2fuCfY 88pRvSCF+Cpa+9SOGIAFDV9MAeAfiWgNETed4CN2AmYFFQPoTiL4kG3vBtNtkS4PREJ70g tRngtTmUkuu/iP8ai63iT7oZH3lAeG4B5FtoG0pVcG14dKFQ8hiL/KDx6yPdyzKgdAI7fZ kpWK5AQ3bZU/bflCl1sWG9E9KzBysEDNqpmWkeuTkGt5pWqBs4FilSdTC02ThvMaoZsIiT HeF+OLqSGEhKTtfS5j/O8UWL0mv1BHX/A7e/qUprdPt7GNkKu+ZcLlBFMacWlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768610648; 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=sqQTlygsOEF2sc+L5g10cXiP6F2YiDJSJ7YnOm24h7E=; b=IH7qIvHYtGOnyF2GOxv4MGCdkOBBpLluCgXAY7HERbZPcD9PKK/2u+jenyczZa6P/MoctH fDyoMImftChsQV6mEts4JLtZIFPAqdvw4Q5uZKmrDjFteaPaxdJOzm8nSgcW+x+yTSTJ87 k+9wWeULMDzrHkzgUWHb3LxAJJsRq5vd9TUV1dwe/tYUGDEELtA6Ix1vhHY7k0s4IjhyN8 4KARBsW46Hvm7GfcO2EP75vYP1RWkqPtPi7DmORXkqSGWTE4I+S+/1P0IjDgmF2n5Vi27A OmcQMG1exBAzm7aPkjZwuDsc8Yp1HkDLXma1ggAqfLH6nuOs2FDSZvJFREnsfw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768610648; a=rsa-sha256; cv=none; b=Xrjkh3JLOFN3uKAWmq2td2+RdOkoDZJ9gl0xH83R+R3qhj/lfEEd3WCNUcvf5dO3d8QSt/ 9D6T885a3DGikIcId14JEbqrzgBapgqSgGzU0YVQ5hATpv0ltMjAs/jIIXtVNoe3kJEkso PZz9SZfWhlEl/NWDmf6xcvEMwDxc+ICQ8ZASw7LKEbSdtPDQhbKGc7Qxl7h6+SkeiH1shH HO23j4A+sqSQiEHfnheXze/ah5phRLAPEe4EsfhzIvU5gF3UQcJoSsDVSJw0DsENaLWQRD g21RpVsCC0J8wMXzGtMnWJNiFY3yWIs6Yb9+8+dexmF4bMQTdWdxEBuTQ5terg== 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 4dtHzD5D08zdqJ for ; Sat, 17 Jan 2026 00:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4399f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 17 Jan 2026 00:44:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: f102a1834933 - main - net: on interface detach purge all its routes before detaching protocols 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f102a18349335bfda1eb373a64eb1ba7462cd6bb Auto-Submitted: auto-generated Date: Sat, 17 Jan 2026 00:44:08 +0000 Message-Id: <696adb58.4399f.434ba2e1@gitrepo.freebsd.org> The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=f102a18349335bfda1eb373a64eb1ba7462cd6bb commit f102a18349335bfda1eb373a64eb1ba7462cd6bb Author: Gleb Smirnoff AuthorDate: 2026-01-17 00:38:02 +0000 Commit: Gleb Smirnoff CommitDate: 2026-01-17 00:38:02 +0000 net: on interface detach purge all its routes before detaching protocols Otherwise, a forwarding thread may use the interface being detached. This is a regression from 0d469d23715d, which manifests itself as a reliably reproducible panic in in6_selecthlim(). Note that there are old bug reports about such a panic, and I believe this change will not fix them, as their nature is not due to a screwed up detach sequence, but due to lack of proper epoch(9) based synchronization between the detach and forwarding. Reviewed by: pouria Reported & tested by: jhibbits PR: 292162 Fixes: 0d469d23715d690b863787ebfa51529e1f6a9092 Differential Revision: https://reviews.freebsd.org/D54721 --- sys/net/if.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/if.c b/sys/net/if.c index 4ddf8a69b3f0..047ccd2ecda7 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -1115,6 +1115,8 @@ if_detach_internal(struct ifnet *ifp, bool vmove) altq_detach(&ifp->if_snd); #endif + rt_flushifroutes(ifp); + if_purgeaddrs(ifp); EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); if_purgemaddrs(ifp); @@ -1139,8 +1141,6 @@ if_detach_internal(struct ifnet *ifp, bool vmove) } else IF_ADDR_WUNLOCK(ifp); } - - rt_flushifroutes(ifp); } #ifdef VIMAGE