From owner-svn-src-projects@freebsd.org Sun Apr 17 16:31:25 2016 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C5BAFB12DC7 for ; Sun, 17 Apr 2016 16:31:25 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8FB991684; Sun, 17 Apr 2016 16:31:25 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3HGVOxJ084471; Sun, 17 Apr 2016 16:31:24 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3HGVOCY084470; Sun, 17 Apr 2016 16:31:24 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201604171631.u3HGVOCY084470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 17 Apr 2016 16:31:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r298152 - projects/vnet/sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Apr 2016 16:31:25 -0000 Author: bz Date: Sun Apr 17 16:31:24 2016 New Revision: 298152 URL: https://svnweb.freebsd.org/changeset/base/298152 Log: Move the interface teardown (destroy) to SI_SUB_INIT_IF to make interfaces go last on network stack teardown. We do need to detach the hhook consumers hwever before the L3 protocols go away, thus run that detach just befre L3 along with the L4 protocols on SI_SUB_PROTO_DOMAIN / SI_ORDER_FOURTH. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/if_enc.c Modified: projects/vnet/sys/net/if_enc.c ============================================================================== --- projects/vnet/sys/net/if_enc.c Sun Apr 17 16:29:24 2016 (r298151) +++ projects/vnet/sys/net/if_enc.c Sun Apr 17 16:31:24 2016 (r298152) @@ -383,12 +383,25 @@ vnet_enc_uninit(const void *unused __unu { KASSERT(V_enc_sc != NULL, ("%s: V_enc_sc is %p\n", __func__, V_enc_sc)); - enc_remove_hhooks(V_enc_sc); if_clone_detach(V_enc_cloner); } -VNET_SYSUNINIT(vnet_enc_uninit, SI_SUB_PSEUDO_DONE, SI_ORDER_ANY, +VNET_SYSUNINIT(vnet_enc_uninit, SI_SUB_INIT_IF, SI_ORDER_ANY, vnet_enc_uninit, NULL); +/* + * The hhook consumer needs to go before ip[6]_destroy are called on + * SI_ORDER_THIRD. + */ +static void +vnet_enc_uninit_hhook(const void *unused __unused) +{ + KASSERT(V_enc_sc != NULL, ("%s: V_enc_sc is %p\n", __func__, V_enc_sc)); + + enc_remove_hhooks(V_enc_sc); +} +VNET_SYSUNINIT(vnet_enc_uninit_hhook, SI_SUB_PROTO_DOMAIN, SI_ORDER_FOURTH, + vnet_enc_uninit_hhook, NULL); + static int enc_modevent(module_t mod, int type, void *data) {