Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jan 2021 00:20:01 GMT
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 685de460bc91 - main - Use static initializers for fib algo to shift initialization to ealier stage. This allows to register modules loaded at boot time.
Message-ID:  <202101110020.10B0K1Iu031675@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by melifaro:

URL: https://cgit.FreeBSD.org/src/commit/?id=685de460bc91737331eaf475b0f517517b2ddbd0

commit 685de460bc91737331eaf475b0f517517b2ddbd0
Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
AuthorDate: 2021-01-11 00:16:54 +0000
Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
CommitDate: 2021-01-11 00:16:54 +0000

    Use static initializers for fib algo to shift initialization
     to ealier stage. This allows to register modules loaded at
     boot time.
    
    Reported by:    olivier
---
 sys/net/route/fib_algo.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/sys/net/route/fib_algo.c b/sys/net/route/fib_algo.c
index 32bafbaca3d1..5e63535f3926 100644
--- a/sys/net/route/fib_algo.c
+++ b/sys/net/route/fib_algo.c
@@ -169,6 +169,7 @@ struct mtx fib_mtx;
 #define	FIB_MOD_UNLOCK()	mtx_unlock(&fib_mtx)
 #define	FIB_MOD_LOCK_ASSERT()	mtx_assert(&fib_mtx, MA_OWNED)
 
+MTX_SYSINIT(fib_mtx, &fib_mtx, "algo list mutex", MTX_DEF);
 
 /* Algorithm has to be this percent better than the current to switch */
 #define	BEST_DIFF_PERCENT	(5 * 256 / 100)
@@ -219,7 +220,7 @@ SYSCTL_INT(_net_route_algo, OID_AUTO, debug_level, CTLFLAG_RW | CTLFLAG_RWTUN,
 
 
 /* List of all registered lookup algorithms */
-static TAILQ_HEAD(, fib_lookup_module)	all_algo_list;
+static TAILQ_HEAD(, fib_lookup_module) all_algo_list = TAILQ_HEAD_INITIALIZER(all_algo_list);
 
 /* List of all fib lookup instances in the vnet */
 VNET_DEFINE_STATIC(TAILQ_HEAD(fib_data_head, fib_data), fib_data_list);
@@ -1613,13 +1614,3 @@ vnet_fib_destroy(void)
 	fib_error_clear();
 	FIB_MOD_UNLOCK();
 }
-
-static void
-fib_init(void)
-{
-
-	mtx_init(&fib_mtx, "algo list mutex", NULL, MTX_DEF);
-	TAILQ_INIT(&all_algo_list);
-}
-SYSINIT(fib_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_SECOND, fib_init, NULL);
-



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101110020.10B0K1Iu031675>