diff options
author | dyson <dyson@FreeBSD.org> | 1996-03-09 06:52:05 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-03-09 06:52:05 +0000 |
commit | c455617892b7768767b3ce378d0ed69e01119211 (patch) | |
tree | 863376ffc18f8b0944ac252272d74c3e25fa82e7 | |
parent | ffcf7ec799c7455083ae5f3d466c89115263eada (diff) | |
download | FreeBSD-src-c455617892b7768767b3ce378d0ed69e01119211.zip FreeBSD-src-c455617892b7768767b3ce378d0ed69e01119211.tar.gz |
Fix two problems:
The pmap_remove in vm_map_clean incorrectly unmapped the entire
map entry.
The new vm_map_simplify_entry code had an error (the offset
of the combined map entry was not set correctly.)
Submitted by: Alan Cox <alc@cs.rice.edu>
-rw-r--r-- | sys/vm/vm_map.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 8f8c0a3..2da7224 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_map.c,v 1.35 1996/03/03 18:53:10 peter Exp $ + * $Id: vm_map.c,v 1.36 1996/03/04 02:04:24 dyson Exp $ */ /* @@ -872,6 +872,7 @@ vm_map_simplify_entry(map, entry) prev->wired_count == 0) { vm_map_entry_unlink(map, prev); entry->start = prev->start; + entry->offset = prev->offset; vm_object_deallocate(prev->object.vm_object); vm_map_entry_dispose(map, prev); esize = entry->end - entry->start; @@ -1547,7 +1548,7 @@ vm_map_clean(map, start, end, syncio, invalidate) } if (invalidate) pmap_remove(vm_map_pmap(map), current->start, - current->end); + current->start + size); if (object && (object->type == OBJT_VNODE)) { /* * Flush pages if writing is allowed. XXX should we continue |