summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_malloc.c
diff options
context:
space:
mode:
authormdf <mdf@FreeBSD.org>2012-07-15 20:29:48 +0000
committermdf <mdf@FreeBSD.org>2012-07-15 20:29:48 +0000
commita42ef9b109ee5ee45250fc3bbaa770c3e62a0de4 (patch)
tree2a0f83e86809435c7447ffbd609f73783ac90342 /sys/kern/kern_malloc.c
parent2357a49326f12023cbed9f16a7a74841c1e49b97 (diff)
downloadFreeBSD-src-a42ef9b109ee5ee45250fc3bbaa770c3e62a0de4.zip
FreeBSD-src-a42ef9b109ee5ee45250fc3bbaa770c3e62a0de4.tar.gz
Fix a bug with memguard(9) on 32-bit architectures without a
VM_KMEM_MAX_SIZE. The code was not taking into account the size of the kernel_map, which the kmem_map is allocated from, so it could produce a sub-map size too large to fit. The simplest solution is to ignore VM_KMEM_MAX entirely and base the memguard map's size off the kernel_map's size, since this is always relevant and always smaller. Found by: Justin Hibbits
Diffstat (limited to 'sys/kern/kern_malloc.c')
-rw-r--r--sys/kern/kern_malloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index 18428c0..e06fa59 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -744,7 +744,7 @@ kmeminit(void *dummy)
vm_kmem_size = 2 * mem_size * PAGE_SIZE;
#ifdef DEBUG_MEMGUARD
- tmp = memguard_fudge(vm_kmem_size, vm_kmem_size_max);
+ tmp = memguard_fudge(vm_kmem_size, kernel_map);
#else
tmp = vm_kmem_size;
#endif
OpenPOWER on IntegriCloud