Date: Tue, 16 Dec 2008 04:40:43 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r186166 - head/sys/net Message-ID: <200812160440.mBG4ehbK026787@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Tue Dec 16 04:40:43 2008 New Revision: 186166 URL: http://svn.freebsd.org/changeset/base/186166 Log: assert that the radix node head is locked when manipulating the tree Modified: head/sys/net/radix.c Modified: head/sys/net/radix.c ============================================================================== --- head/sys/net/radix.c Tue Dec 16 04:34:09 2008 (r186165) +++ head/sys/net/radix.c Tue Dec 16 04:40:43 2008 (r186166) @@ -274,6 +274,7 @@ rn_match(v_arg, head) int off = t->rn_offset, vlen = LEN(cp), matched_off; register int test, b, rn_bit; + RADIX_NODE_HEAD_LOCK_ASSERT(head); /* * Open code rn_search(v, top) to avoid overhead of extra * subroutine call. @@ -618,6 +619,8 @@ rn_addroute(v_arg, n_arg, head, treenode caddr_t mmask; struct radix_mask *m, **mp; + + RADIX_NODE_HEAD_WLOCK_ASSERT(head); /* * In dealing with non-contiguous masks, there may be * many different routes which have the same mask. @@ -788,6 +791,7 @@ rn_delete(v_arg, netmask_arg, head) caddr_t v, netmask; int b, head_off, vlen; + RADIX_NODE_HEAD_WLOCK_ASSERT(head); v = v_arg; netmask = netmask_arg; x = head->rnh_treetop; @@ -981,6 +985,7 @@ rn_walktree_from(h, a, m, f, w) int stopping = 0; int lastb; + RADIX_NODE_HEAD_LOCK_ASSERT(h); /* * rn_search_m is sort-of-open-coded here. We cannot use the * function because we need to keep track of the last node seen. @@ -1087,6 +1092,8 @@ rn_walktree(h, f, w) * while applying the function f to it, so we need to calculate * the successor node in advance. */ + + RADIX_NODE_HEAD_LOCK_ASSERT(h); /* First time through node, go left */ while (rn->rn_bit >= 0) rn = rn->rn_left;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812160440.mBG4ehbK026787>