Module Name:    src
Committed By:   matt
Date:           Fri Mar 14 21:45:42 UTC 2014

Modified Files:
        src/sys/kern [matt-nb5-mips64]: kern_malloc.c

Log Message:
Make sure uvm_km_suballoc returned the correctly sized submap.


To generate a diff of this commit:
cvs rdiff -u -r1.121.10.1 -r1.121.10.2 src/sys/kern/kern_malloc.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/kern/kern_malloc.c
diff -u src/sys/kern/kern_malloc.c:1.121.10.1 src/sys/kern/kern_malloc.c:1.121.10.2
--- src/sys/kern/kern_malloc.c:1.121.10.1	Wed Apr 21 00:28:16 2010
+++ src/sys/kern/kern_malloc.c	Fri Mar 14 21:45:41 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_malloc.c,v 1.121.10.1 2010/04/21 00:28:16 matt Exp $	*/
+/*	$NetBSD: kern_malloc.c,v 1.121.10.2 2014/03/14 21:45:41 matt Exp $	*/
 
 /*
  * Copyright (c) 1987, 1991, 1993
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.121.10.1 2010/04/21 00:28:16 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.121.10.2 2014/03/14 21:45:41 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -918,9 +918,6 @@ kmeminit(void)
 	 */
 	kmeminit_nkmempages();
 
-	kmemusage = (struct kmemusage *) uvm_km_alloc(kernel_map,
-	    (vsize_t)(nkmempages * sizeof(struct kmemusage)), 0,
-	    UVM_KMF_WIRED|UVM_KMF_ZERO);
 	kmb = 0;
 	kmem_map = uvm_km_suballoc(kernel_map, &kmb,
 	    &kml, ((vsize_t)nkmempages << PAGE_SHIFT),
@@ -928,6 +925,12 @@ kmeminit(void)
 	uvm_km_vacache_init(kmem_map, "kvakmem", 0);
 	kmembase = (char *)kmb;
 	kmemlimit = (char *)kml;
+
+	KASSERT(((kmemlimit - kmembase) >> PAGE_SHIFT) == nkmempages);
+
+	kmemusage = (struct kmemusage *) uvm_km_alloc(kernel_map,
+	    (vsize_t)(nkmempages * sizeof(struct kmemusage)), 0,
+	    UVM_KMF_WIRED|UVM_KMF_ZERO);
 #ifdef KMEMSTATS
 	for (indx = 0; indx < MINBUCKET + 16; indx++) {
 		if (1 << indx >= PAGE_SIZE)

Reply via email to