From b60f2e04c997a7db556ab1a51e1e88b899867a36 Mon Sep 17 00:00:00 2001 From: dyson Date: Tue, 2 Jul 1996 02:08:02 +0000 Subject: Properly set the PG_MAPPED and PG_WRITEABLE flags. This fixes some potential problems with vm_map_remove/vm_map_delete. --- sys/vm/vm_fault.c | 4 ++-- sys/vm/vm_glue.c | 6 +++--- sys/vm/vm_kern.c | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'sys') 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); -- cgit v1.1