Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Mar 2010 21:27:26 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r204808 - head/sys/net
Message-ID:  <201003062127.o26LRQ6J042057@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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),



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