summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_extern.h
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-05-22 04:53:51 +0000
committeralc <alc@FreeBSD.org>2004-05-22 04:53:51 +0000
commit5d0912f6d822aa43b6aee5b532f4748d03c89146 (patch)
tree6d85a1a2ab10a2464008e25a57d32d46bc5a5096 /sys/vm/vm_extern.h
parent29c76b12014e9524479c1b3617da95f5acb719e3 (diff)
downloadFreeBSD-src-5d0912f6d822aa43b6aee5b532f4748d03c89146.zip
FreeBSD-src-5d0912f6d822aa43b6aee5b532f4748d03c89146.tar.gz
To date, unwiring a fictitious page has produced a panic. The reason
being that PHYS_TO_VM_PAGE() returns the wrong vm_page for fictitious pages but unwiring uses PHYS_TO_VM_PAGE(). The resulting panic reported an unexpected wired count. Rather than attempting to fix PHYS_TO_VM_PAGE(), this fix takes advantage of the properties of fictitious pages. Specifically, fictitious pages will never be completely unwired. Therefore, we can keep a fictitious page's wired count forever set to one and thereby avoid the use of PHYS_TO_VM_PAGE() when we know that we're working with a fictitious page, just not which one. In collaboration with: green@, tegge@ PR: kern/29915
Diffstat (limited to 'sys/vm/vm_extern.h')
-rw-r--r--sys/vm/vm_extern.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h
index 7060efb..08169ef 100644
--- a/sys/vm/vm_extern.h
+++ b/sys/vm/vm_extern.h
@@ -69,8 +69,8 @@ void swapout_procs(int);
int useracc(void *, int, int);
int vm_fault(vm_map_t, vm_offset_t, vm_prot_t, int);
void vm_fault_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t);
-void vm_fault_unwire(vm_map_t, vm_offset_t, vm_offset_t);
-int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t);
+void vm_fault_unwire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t);
+int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t);
void vm_forkproc(struct thread *, struct proc *, struct thread *, int);
void vm_waitproc(struct proc *);
int vm_mmap(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, void *, vm_ooffset_t);
OpenPOWER on IntegriCloud