Module Name:    src
Committed By:   knakahara
Date:           Mon Jul 31 04:23:48 UTC 2017

Modified Files:
        src/sys/opencrypto: crypto.c

Log Message:
use kmem_alloc KPI instead of malloc KPI.


To generate a diff of this commit:
cvs rdiff -u -r1.98 -r1.99 src/sys/opencrypto/crypto.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/opencrypto/crypto.c
diff -u src/sys/opencrypto/crypto.c:1.98 src/sys/opencrypto/crypto.c:1.99
--- src/sys/opencrypto/crypto.c:1.98	Mon Jul 31 04:21:59 2017
+++ src/sys/opencrypto/crypto.c	Mon Jul 31 04:23:48 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: crypto.c,v 1.98 2017/07/31 04:21:59 knakahara Exp $ */
+/*	$NetBSD: crypto.c,v 1.99 2017/07/31 04:23:48 knakahara Exp $ */
 /*	$FreeBSD: src/sys/opencrypto/crypto.c,v 1.4.2.5 2003/02/26 00:14:05 sam Exp $	*/
 /*	$OpenBSD: crypto.c,v 1.41 2002/07/17 23:52:38 art Exp $	*/
 
@@ -53,12 +53,11 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: crypto.c,v 1.98 2017/07/31 04:21:59 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: crypto.c,v 1.99 2017/07/31 04:23:48 knakahara Exp $");
 
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/systm.h>
-#include <sys/malloc.h>
 #include <sys/proc.h>
 #include <sys/pool.h>
 #include <sys/kthread.h>
@@ -474,8 +473,6 @@ sysctl_opencrypto_setup(struct sysctllog
 		       CTL_CREATE, CTL_EOL);
 }
 
-MALLOC_DEFINE(M_CRYPTO_DATA, "crypto", "crypto session records");
-
 /*
  * Synchronization: read carefully, this is non-trivial.
  *
@@ -590,8 +587,8 @@ crypto_init0(void)
 		return ENOMEM;
 	}
 
-	crypto_drivers = malloc(CRYPTO_DRIVERS_INITIAL *
-	    sizeof(struct cryptocap), M_CRYPTO_DATA, M_NOWAIT | M_ZERO);
+	crypto_drivers = kmem_zalloc(CRYPTO_DRIVERS_INITIAL *
+	    sizeof(struct cryptocap), KM_NOSLEEP);
 	if (crypto_drivers == NULL) {
 		printf("crypto_init: cannot malloc driver table\n");
 		return ENOMEM;
@@ -699,7 +696,8 @@ crypto_destroy(bool exit_kthread)
 
 	mutex_enter(&crypto_drv_mtx);
 	if (crypto_drivers != NULL)
-		free(crypto_drivers, M_CRYPTO_DATA);
+		kmem_free(crypto_drivers,
+		    crypto_drivers_num * sizeof(struct cryptocap));
 	mutex_exit(&crypto_drv_mtx);
 
 	percpu_free(crypto_crp_qs_percpu, sizeof(struct crypto_crp_qs));
@@ -931,8 +929,8 @@ crypto_get_driverid(u_int32_t flags)
 			return -1;
 		}
 
-		newdrv = malloc(2 * crypto_drivers_num *
-		    sizeof(struct cryptocap), M_CRYPTO_DATA, M_NOWAIT|M_ZERO);
+		newdrv = kmem_zalloc(2 * crypto_drivers_num *
+		    sizeof(struct cryptocap), KM_NOSLEEP);
 		if (newdrv == NULL) {
 			mutex_exit(&crypto_drv_mtx);
 			printf("crypto: no space to expand driver table!\n");
@@ -941,10 +939,10 @@ crypto_get_driverid(u_int32_t flags)
 
 		memcpy(newdrv, crypto_drivers,
 		    crypto_drivers_num * sizeof(struct cryptocap));
+		kmem_free(crypto_drivers,
+		    crypto_drivers_num * sizeof(struct cryptocap));
 
 		crypto_drivers_num *= 2;
-
-		free(crypto_drivers, M_CRYPTO_DATA);
 		crypto_drivers = newdrv;
 
 		cap = crypto_checkdriver_uninit(i);

Reply via email to