MFi386 r207205
Clearing a page table entry's accessed bit (PG_A) and setting the page's PG_REFERENCED flag in pmap_protect() can't really be justified, so don't do it.
This commit is contained in:
parent
90aa4f9e8c
commit
14dd3a29ea
@ -2600,22 +2600,16 @@ retry:
|
||||
obits = pbits = *pte;
|
||||
if ((pbits & PG_V) == 0)
|
||||
continue;
|
||||
if (pbits & PG_MANAGED) {
|
||||
m = NULL;
|
||||
if (pbits & PG_A) {
|
||||
m = PHYS_TO_VM_PAGE(xpmap_mtop(pbits) & PG_FRAME);
|
||||
vm_page_flag_set(m, PG_REFERENCED);
|
||||
pbits &= ~PG_A;
|
||||
}
|
||||
if ((pbits & PG_M) != 0) {
|
||||
if (m == NULL)
|
||||
m = PHYS_TO_VM_PAGE(xpmap_mtop(pbits) & PG_FRAME);
|
||||
|
||||
if ((prot & VM_PROT_WRITE) == 0) {
|
||||
if ((pbits & (PG_MANAGED | PG_M | PG_RW)) ==
|
||||
(PG_MANAGED | PG_M | PG_RW)) {
|
||||
m = PHYS_TO_VM_PAGE(xpmap_mtop(pbits) &
|
||||
PG_FRAME);
|
||||
vm_page_dirty(m);
|
||||
}
|
||||
}
|
||||
|
||||
if ((prot & VM_PROT_WRITE) == 0)
|
||||
pbits &= ~(PG_RW | PG_M);
|
||||
}
|
||||
#ifdef PAE
|
||||
if ((prot & VM_PROT_EXECUTE) == 0)
|
||||
pbits |= pg_nx;
|
||||
|
Loading…
x
Reference in New Issue
Block a user