summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-07-02 02:08:02 +0000
committerdyson <dyson@FreeBSD.org>1996-07-02 02:08:02 +0000
commitb60f2e04c997a7db556ab1a51e1e88b899867a36 (patch)
tree44da2c02f1c5277b5b70f939b215935db28381b2 /sys/vm
parent64422261a09e4e1bbd10d909af4cfea261c20a97 (diff)
downloadFreeBSD-src-b60f2e04c997a7db556ab1a51e1e88b899867a36.zip
FreeBSD-src-b60f2e04c997a7db556ab1a51e1e88b899867a36.tar.gz
Properly set the PG_MAPPED and PG_WRITEABLE flags. This fixes some potential
problems with vm_map_remove/vm_map_delete.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_fault.c4
-rw-r--r--sys/vm/vm_glue.c6
-rw-r--r--sys/vm/vm_kern.c3
3 files changed, 7 insertions, 6 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 29a7c16..c3424b9 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -66,7 +66,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_fault.c,v 1.51 1996/06/14 23:26:40 davidg Exp $
+ * $Id: vm_fault.c,v 1.52 1996/06/16 20:37:26 dyson Exp $
*/
/*
@@ -972,10 +972,10 @@ vm_fault_copy_entry(dst_map, src_map, dst_entry, src_entry)
* Enter it in the pmap...
*/
- dst_m->flags |= PG_WRITEABLE|PG_MAPPED;
dst_m->flags &= ~PG_ZERO;
pmap_enter(dst_map->pmap, vaddr, VM_PAGE_TO_PHYS(dst_m),
prot, FALSE);
+ dst_m->flags |= PG_WRITEABLE|PG_MAPPED;
/*
* Mark it no longer busy, and put it on the active list.
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index 6e2d55b..21d28f7 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -59,7 +59,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_glue.c,v 1.50 1996/05/31 00:37:57 dyson Exp $
+ * $Id: vm_glue.c,v 1.51 1996/06/30 21:16:18 dyson Exp $
*/
#include "opt_ddb.h"
@@ -253,7 +253,7 @@ vm_fork(p1, p2)
pmap_kenter(((vm_offset_t) up) + i * PAGE_SIZE,
VM_PAGE_TO_PHYS(m));
m->flags &= ~PG_ZERO;
- m->flags |= PG_MAPPED;
+ m->flags |= PG_MAPPED|PG_WRITEABLE;
m->valid = VM_PAGE_BITS_ALL;
}
@@ -364,7 +364,7 @@ retry:
m->valid = VM_PAGE_BITS_ALL;
}
PAGE_WAKEUP(m);
- m->flags |= PG_MAPPED;
+ m->flags |= PG_MAPPED|PG_WRITEABLE;
}
s = splhigh();
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index 1b9960e..5b117b0 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_kern.c,v 1.25 1996/05/18 03:37:39 dyson Exp $
+ * $Id: vm_kern.c,v 1.26 1996/05/23 02:24:55 dyson Exp $
*/
/*
@@ -381,6 +381,7 @@ retry:
PAGE_WAKEUP(m);
pmap_enter(kernel_pmap, addr + i, VM_PAGE_TO_PHYS(m),
VM_PROT_ALL, 1);
+ m->flags |= PG_MAPPED|PG_WRITEABLE;
}
vm_map_unlock(map);
OpenPOWER on IntegriCloud