Properly set the PG_MAPPED and PG_WRITEABLE flags. This fixes some potential

problems with vm_map_remove/vm_map_delete.
This commit is contained in:
John Dyson 1996-07-02 02:08:02 +00:00
parent 144e75837e
commit a6e6bcc5f4
3 changed files with 7 additions and 6 deletions

View File

@ -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.

View File

@ -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();

View File

@ -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);