svn commit: r204808 - head/sys/net
Bjoern A. Zeeb
bz at FreeBSD.org
Sat Mar 6 21:27:26 UTC 2010
Author: bz
Date: Sat Mar 6 21:27:26 2010
New Revision: 204808
URL: http://svn.freebsd.org/changeset/base/204808
Log:
Introduce a function rn_detachhead() that will free the
radix table root nodes. This is only needed (and available)
in the virtualization case to free the resources when tearing
down a virtual network stack.
Sponsored by: ISPsystem
Reviewed by: julian, zec
MFC after: 5 days
Modified:
head/sys/net/radix.c
head/sys/net/radix.h
Modified: head/sys/net/radix.c
==============================================================================
--- head/sys/net/radix.c Sat Mar 6 21:24:32 2010 (r204807)
+++ head/sys/net/radix.c Sat Mar 6 21:27:26 2010 (r204808)
@@ -1161,6 +1161,24 @@ rn_inithead(head, off)
return (1);
}
+#ifdef VIMAGE
+int
+rn_detachhead(void **head)
+{
+ struct radix_node_head *rnh;
+
+ KASSERT((head != NULL && *head != NULL),
+ ("%s: head already freed", __func__));
+ rnh = *head;
+
+ /* Free <left,root,right> nodes. */
+ Free(rnh);
+
+ *head = NULL;
+ return (1);
+}
+#endif
+
void
rn_init(int maxk)
{
Modified: head/sys/net/radix.h
==============================================================================
--- head/sys/net/radix.h Sat Mar 6 21:24:32 2010 (r204807)
+++ head/sys/net/radix.h Sat Mar 6 21:27:26 2010 (r204808)
@@ -162,6 +162,9 @@ struct radix_node_head {
void rn_init(int);
int rn_inithead(void **, int);
+#ifdef VIMAGE
+int rn_detachhead(void **);
+#endif
int rn_refines(void *, void *);
struct radix_node
*rn_addmask(void *, int, int),
More information about the svn-src-all
mailing list