summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-03-09 06:52:05 +0000
committerdyson <dyson@FreeBSD.org>1996-03-09 06:52:05 +0000
commitc455617892b7768767b3ce378d0ed69e01119211 (patch)
tree863376ffc18f8b0944ac252272d74c3e25fa82e7
parentffcf7ec799c7455083ae5f3d466c89115263eada (diff)
downloadFreeBSD-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.c5
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
OpenPOWER on IntegriCloud