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)