summaryrefslogtreecommitdiffstats
path: root/sys/uvm/uvm_fault.c
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2006-07-13 22:51:24 +0000
committerderaadt <deraadt@openbsd.org>2006-07-13 22:51:24 +0000
commitfd9b881ab0b4634eb50073b79bfe69dbb92c620c (patch)
tree8c41802140a282cb8bf10802010c8fab403657d6 /sys/uvm/uvm_fault.c
parentSwitch to a three-phase pci resource fixup: (diff)
downloadwireguard-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.c40
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;