diff options
author | 2006-07-13 22:51:24 +0000 | |
---|---|---|
committer | 2006-07-13 22:51:24 +0000 | |
commit | fd9b881ab0b4634eb50073b79bfe69dbb92c620c (patch) | |
tree | 8c41802140a282cb8bf10802010c8fab403657d6 /sys/uvm/uvm_fault.c | |
parent | Switch to a three-phase pci resource fixup: (diff) | |
download | wireguard-openbsd-fd9b881ab0b4634eb50073b79bfe69dbb92c620c.tar.xz wireguard-openbsd-fd9b881ab0b4634eb50073b79bfe69dbb92c620c.zip |
Back out the anon change. Apparently it was tested by a few, but most of
us did not see it or get a chance to test it before it was commited. It
broke cvs, in the ami driver, making it not succeed at seeing it's devices.
Diffstat (limited to 'sys/uvm/uvm_fault.c')
-rw-r--r-- | sys/uvm/uvm_fault.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/sys/uvm/uvm_fault.c b/sys/uvm/uvm_fault.c index 1401962e34f..f40c692c50d 100644 --- a/sys/uvm/uvm_fault.c +++ b/sys/uvm/uvm_fault.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvm_fault.c,v 1.38 2006/06/21 16:20:05 mickey Exp $ */ +/* $OpenBSD: uvm_fault.c,v 1.39 2006/07/13 22:51:26 deraadt Exp $ */ /* $NetBSD: uvm_fault.c,v 1.51 2000/08/06 00:22:53 thorpej Exp $ */ /* @@ -200,7 +200,7 @@ uvmfault_anonflush(anons, n) if (anons[lcv] == NULL) continue; simple_lock(&anons[lcv]->an_lock); - pg = anons[lcv]->an_page; + pg = anons[lcv]->u.an_page; if (pg && (pg->flags & PG_BUSY) == 0 && pg->loan_count == 0) { uvm_lock_pageq(); if (pg->wire_count == 0) { @@ -306,7 +306,7 @@ uvmfault_anonget(ufi, amap, anon) result = 0; /* XXX shut up gcc */ uvmexp.fltanget++; /* bump rusage counters */ - if (anon->an_page) + if (anon->u.an_page) curproc->p_addr->u_stats.p_ru.ru_minflt++; else curproc->p_addr->u_stats.p_ru.ru_majflt++; @@ -318,7 +318,7 @@ uvmfault_anonget(ufi, amap, anon) while (1) { we_own = FALSE; /* TRUE if we set PG_BUSY on a page */ - pg = anon->an_page; + pg = anon->u.an_page; /* * if there is a resident page and it is loaned, then anon @@ -464,7 +464,7 @@ uvmfault_anonget(ufi, amap, anon) KASSERT(result != VM_PAGER_PEND); /* remove page from anon */ - anon->an_page = NULL; + anon->u.an_page = NULL; /* * remove the swap slot from the anon @@ -838,14 +838,14 @@ ReFault: anon = anons[lcv]; simple_lock(&anon->an_lock); /* ignore loaned pages */ - if (anon->an_page && anon->an_page->loan_count == 0 && - (anon->an_page->flags & (PG_RELEASED|PG_BUSY)) == 0) { + if (anon->u.an_page && anon->u.an_page->loan_count == 0 && + (anon->u.an_page->flags & (PG_RELEASED|PG_BUSY)) == 0) { uvm_lock_pageq(); - uvm_pageactivate(anon->an_page); /* reactivate */ + uvm_pageactivate(anon->u.an_page); /* reactivate */ uvm_unlock_pageq(); UVMHIST_LOG(maphist, " MAPPING: n anon: pm=0x%x, va=0x%x, pg=0x%x", - ufi.orig_map->pmap, currva, anon->an_page, 0); + ufi.orig_map->pmap, currva, anon->u.an_page, 0); uvmexp.fltnamap++; /* @@ -855,7 +855,7 @@ ReFault: */ (void) pmap_enter(ufi.orig_map->pmap, currva, - VM_PAGE_TO_PHYS(anon->an_page), + VM_PAGE_TO_PHYS(anon->u.an_page), (anon->an_ref > 1) ? (enter_prot & ~VM_PROT_WRITE) : enter_prot, PMAP_CANFAIL | @@ -1089,7 +1089,7 @@ ReFault: * uobj is non null if the page is on loan from an object (i.e. uobj) */ - uobj = anon->an_page->uobject; /* locked by anonget if !NULL */ + uobj = anon->u.an_page->uobject; /* locked by anonget if !NULL */ /* locked: maps(read), amap, anon, uobj(if one) */ @@ -1097,7 +1097,7 @@ ReFault: * special handling for loaned pages */ - if (anon->an_page->loan_count) { + if (anon->u.an_page->loan_count) { if ((access_type & VM_PROT_WRITE) == 0) { @@ -1139,18 +1139,18 @@ ReFault: * (if any) */ /* copy old -> new */ - uvm_pagecopy(anon->an_page, pg); + uvm_pagecopy(anon->u.an_page, pg); /* force reload */ - pmap_page_protect(anon->an_page, + pmap_page_protect(anon->u.an_page, VM_PROT_NONE); uvm_lock_pageq(); /* KILL loan */ if (uobj) /* if we were loaning */ - anon->an_page->loan_count--; - anon->an_page->uanon = NULL; + anon->u.an_page->loan_count--; + anon->u.an_page->uanon = NULL; /* in case we owned */ - anon->an_page->pqflags &= ~PQ_ANON; + anon->u.an_page->pqflags &= ~PQ_ANON; uvm_pageactivate(pg); uvm_unlock_pageq(); if (uobj) { @@ -1159,7 +1159,7 @@ ReFault: } /* install new page in anon */ - anon->an_page = pg; + anon->u.an_page = pg; pg->uanon = anon; pg->pqflags |= PQ_ANON; pg->flags &= ~(PG_BUSY|PG_FAKE); @@ -1213,7 +1213,7 @@ ReFault: /* got all resources, replace anon with nanon */ - uvm_pagecopy(oanon->an_page, pg); /* pg now !PG_CLEAN */ + uvm_pagecopy(oanon->u.an_page, pg); /* pg now !PG_CLEAN */ pg->flags &= ~(PG_BUSY|PG_FAKE); /* un-busy! new page */ UVM_PAGE_OWN(pg, NULL); amap_add(&ufi.entry->aref, ufi.orig_rvaddr - ufi.entry->start, @@ -1232,7 +1232,7 @@ ReFault: uvmexp.flt_anon++; oanon = anon; /* old, locked anon is same as anon */ - pg = anon->an_page; + pg = anon->u.an_page; if (anon->an_ref > 1) /* disallow writes to ref > 1 anons */ enter_prot = enter_prot & ~VM_PROT_WRITE; |