summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-12-07 06:19:37 +0000
committerdyson <dyson@FreeBSD.org>1996-12-07 06:19:37 +0000
commit16bfdb75a7e0b94f6b429383d7483b86e0cac4de (patch)
tree16f06caf228e4b76fd01eecd894b2b7469da806a /sys/vm
parent893f3f4e22f837ac1964212088fef9ddafd6f087 (diff)
downloadFreeBSD-src-16bfdb75a7e0b94f6b429383d7483b86e0cac4de.zip
FreeBSD-src-16bfdb75a7e0b94f6b429383d7483b86e0cac4de.tar.gz
Fix a map entry leak problem found by DG. Also, de-inline a function
vm_map_entry_dispose, because it won't help being inlined.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_map.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 4d2c403..fe51b3d 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -325,14 +325,15 @@ vm_map_init(map, min, max, pageable)
*
* Inverse of vm_map_entry_create.
*/
-static __inline void
+static void
vm_map_entry_dispose(map, entry)
vm_map_t map;
vm_map_entry_t entry;
{
int s;
- if (kentry_count < KENTRY_LOW_WATER) {
+ if (map == kernel_map || map == kmem_map ||
+ map == mb_map || map == pager_map) {
s = splvm();
entry->next = kentry_free;
kentry_free = entry;
@@ -394,7 +395,8 @@ vm_map_entry_create(map)
splx(s);
}
- if (map == kernel_map || map == kmem_map || map == mb_map || map == pager_map) {
+ if (map == kernel_map || map == kmem_map ||
+ map == mb_map || map == pager_map) {
s = splvm();
entry = kentry_free;
if (entry) {
OpenPOWER on IntegriCloud