Module Name:    src
Committed By:   knakahara
Date:           Wed Dec  9 06:00:51 UTC 2015

Modified Files:
        src/sys/netinet: ip_encap.c

Log Message:
ip_encap uses kmem_alloc APIs instead of malloc.


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/sys/netinet/ip_encap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/ip_encap.c
diff -u src/sys/netinet/ip_encap.c:1.46 src/sys/netinet/ip_encap.c:1.47
--- src/sys/netinet/ip_encap.c:1.46	Mon Aug 24 22:21:26 2015
+++ src/sys/netinet/ip_encap.c	Wed Dec  9 06:00:51 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_encap.c,v 1.46 2015/08/24 22:21:26 pooka Exp $	*/
+/*	$NetBSD: ip_encap.c,v 1.47 2015/12/09 06:00:51 knakahara Exp $	*/
 /*	$KAME: ip_encap.c,v 1.73 2001/10/02 08:30:58 itojun Exp $	*/
 
 /*
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_encap.c,v 1.46 2015/08/24 22:21:26 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_encap.c,v 1.47 2015/12/09 06:00:51 knakahara Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_mrouting.h"
@@ -85,6 +85,7 @@ __KERNEL_RCSID(0, "$NetBSD: ip_encap.c,v
 #include <sys/errno.h>
 #include <sys/protosw.h>
 #include <sys/queue.h>
+#include <sys/kmem.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -492,17 +493,17 @@ encap_attach(int af, int proto,
 	}
 
 	/* M_NETADDR ok? */
-	ep = malloc(sizeof(*ep), M_NETADDR, M_NOWAIT|M_ZERO);
+	ep = kmem_zalloc(sizeof(*ep), KM_NOSLEEP);
 	if (ep == NULL) {
 		error = ENOBUFS;
 		goto fail;
 	}
-	ep->addrpack = malloc(l, M_NETADDR, M_NOWAIT|M_ZERO);
+	ep->addrpack = kmem_zalloc(l, KM_NOSLEEP);
 	if (ep->addrpack == NULL) {
 		error = ENOBUFS;
 		goto gc;
 	}
-	ep->maskpack = malloc(l, M_NETADDR, M_NOWAIT|M_ZERO);
+	ep->maskpack = kmem_zalloc(l, KM_NOSLEEP);
 	if (ep->maskpack == NULL) {
 		error = ENOBUFS;
 		goto gc;
@@ -550,11 +551,11 @@ encap_attach(int af, int proto,
 
 gc:
 	if (ep->addrpack)
-		free(ep->addrpack, M_NETADDR);
+		kmem_free(ep->addrpack, l);
 	if (ep->maskpack)
-		free(ep->maskpack, M_NETADDR);
+		kmem_free(ep->maskpack, l);
 	if (ep)
-		free(ep, M_NETADDR);
+		kmem_free(ep, sizeof(*ep));
 fail:
 	splx(s);
 	return NULL;
@@ -580,7 +581,7 @@ encap_attach_func(int af, int proto,
 	if (error)
 		goto fail;
 
-	ep = malloc(sizeof(*ep), M_NETADDR, M_NOWAIT);	/*XXX*/
+	ep = kmem_alloc(sizeof(*ep), KM_NOSLEEP);	/*XXX*/
 	if (ep == NULL) {
 		error = ENOBUFS;
 		goto fail;
@@ -701,10 +702,10 @@ encap_detach(const struct encaptab *cook
 			if (error)
 				return error;
 			if (!ep->func) {
-				free(p->addrpack, M_NETADDR);
-				free(p->maskpack, M_NETADDR);
+				kmem_free(p->addrpack, ep->addrpack->sa_len);
+				kmem_free(p->maskpack, ep->maskpack->sa_len);
 			}
-			free(p, M_NETADDR);	/*XXX*/
+			kmem_free(p, sizeof(*p));	/*XXX*/
 			return 0;
 		}
 	}

Reply via email to