From owner-svn-src-head@FreeBSD.ORG Mon Dec 14 20:12:52 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 000D91065676; Mon, 14 Dec 2009 20:12:51 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D92A88FC0A; Mon, 14 Dec 2009 20:12:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBEKCpgC037013; Mon, 14 Dec 2009 20:12:51 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBEKCpdn037009; Mon, 14 Dec 2009 20:12:51 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200912142012.nBEKCpdn037009@svn.freebsd.org> From: Luigi Rizzo Date: Mon, 14 Dec 2009 20:12:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r200537 - head/sys/net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Dec 2009 20:12:52 -0000 Author: luigi Date: Mon Dec 14 20:12:51 2009 New Revision: 200537 URL: http://svn.freebsd.org/changeset/base/200537 Log: Move the scan for max_keylen into route.c::route_init(), and make max_keylen an argument for rn_init(). This removes an unnecessary dependency on domain.h from radix.c MFC after: 7 days Modified: head/sys/net/radix.c head/sys/net/radix.h head/sys/net/route.c Modified: head/sys/net/radix.c ============================================================================== --- head/sys/net/radix.c Mon Dec 14 20:07:25 2009 (r200536) +++ head/sys/net/radix.c Mon Dec 14 20:12:51 2009 (r200537) @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include "opt_mpath.h" @@ -1163,16 +1162,11 @@ rn_inithead(head, off) } void -rn_init() +rn_init(int maxk) { char *cp, *cplim; -#ifdef _KERNEL - struct domain *dom; - for (dom = domains; dom; dom = dom->dom_next) - if (dom->dom_maxrtkey > max_keylen) - max_keylen = dom->dom_maxrtkey; -#endif + max_keylen = maxk; if (max_keylen == 0) { log(LOG_ERR, "rn_init: radix functions require max_keylen be set\n"); @@ -1189,19 +1183,3 @@ rn_init() if (rn_inithead((void **)(void *)&mask_rnhead, 0) == 0) panic("rn_init 2"); } - -#ifndef _KERNEL -/* - * A simple function to make the code usable from userland. - * A proper fix (maybe later) would be to change rn_init() so that it - * takes maxkeylen as an argument, and move the scan of - * domains into net/route.c::route_init(). - */ -void rn_init2(int maxk); -void -rn_init2(int maxk) -{ - max_keylen = maxk; - rn_init(); -} -#endif /* !_KERNEL */ Modified: head/sys/net/radix.h ============================================================================== --- head/sys/net/radix.h Mon Dec 14 20:07:25 2009 (r200536) +++ head/sys/net/radix.h Mon Dec 14 20:12:51 2009 (r200537) @@ -160,7 +160,7 @@ struct radix_node_head { #define RADIX_NODE_HEAD_WLOCK_ASSERT(rnh) rw_assert(&(rnh)->rnh_lock, RA_WLOCKED) #endif /* _KERNEL */ -void rn_init(void); +void rn_init(int); int rn_inithead(void **, int); int rn_refines(void *, void *); struct radix_node Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Mon Dec 14 20:07:25 2009 (r200536) +++ head/sys/net/route.c Mon Dec 14 20:12:51 2009 (r200537) @@ -171,13 +171,20 @@ rt_tables_get_rnh(int table, int fam) static void route_init(void) { + struct domain *dom; + int max_keylen = 0; /* whack the tunable ints into line. */ if (rt_numfibs > RT_MAXFIBS) rt_numfibs = RT_MAXFIBS; if (rt_numfibs == 0) rt_numfibs = 1; - rn_init(); /* initialize all zeroes, all ones, mask table */ + + for (dom = domains; dom; dom = dom->dom_next) + if (dom->dom_maxrtkey > max_keylen) + max_keylen = dom->dom_maxrtkey; + + rn_init(max_keylen); /* init all zeroes, all ones, mask table */ } SYSINIT(route_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, 0);