diff options
author | Owain Ainsworth <oga@cvs.openbsd.org> | 2009-06-16 00:11:30 +0000 |
---|---|---|
committer | Owain Ainsworth <oga@cvs.openbsd.org> | 2009-06-16 00:11:30 +0000 |
commit | b20700966027364e7e2e3cf5ca4613cbb4e2a25b (patch) | |
tree | dac29c9a1582e023159a8aabe2282775b21cbdc2 /sys/uvm/uvm_mmap.c | |
parent | ab37797a62467132f94babf9bc9d57cef8402599 (diff) |
Backout all changes to uvm after pmemrange (which will be backed out
separately).
a change at or just before the hackathon has either exposed or added a
very very nasty memory corruption bug that is giving us hell right now.
So in the interest of kernel stability these diffs are being backed out
until such a time as that corruption bug has been found and squashed,
then the ones that are proven good may slowly return.
a quick hitlist of the main commits this backs out:
mine:
uvm_objwire
the lock change in uvm_swap.c
using trees for uvm objects instead of the hash
removing the pgo_releasepg callback.
art@'s:
putting pmap_page_protect(VM_PROT_NONE) in uvm_pagedeactivate() since
all callers called that just prior anyway.
ok beck@, ariane@.
prompted by deraadt@.
Diffstat (limited to 'sys/uvm/uvm_mmap.c')
-rw-r--r-- | sys/uvm/uvm_mmap.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/uvm/uvm_mmap.c b/sys/uvm/uvm_mmap.c index 7075e42e515..9d13fc011af 100644 --- a/sys/uvm/uvm_mmap.c +++ b/sys/uvm/uvm_mmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvm_mmap.c,v 1.74 2009/06/01 20:53:30 millert Exp $ */ +/* $OpenBSD: uvm_mmap.c,v 1.75 2009/06/16 00:11:29 oga Exp $ */ /* $NetBSD: uvm_mmap.c,v 1.49 2001/02/18 21:19:08 chs Exp $ */ /* @@ -298,7 +298,8 @@ sys_mincore(struct proc *p, void *v, register_t *retval) */ if (UVM_ET_ISOBJ(entry)) { KASSERT(!UVM_OBJ_IS_KERN_OBJECT(entry->object.uvm_obj)); - if (entry->object.uvm_obj->pgops->pgo_fault != NULL) { + if (entry->object.uvm_obj->pgops->pgo_releasepg + == NULL) { pgi = 1; for (/* nothing */; start < lim; start += PAGE_SIZE, vec++) @@ -577,9 +578,8 @@ sys_mmap(struct proc *p, void *v, register_t *retval) if ((flags & MAP_ANON) != 0 || ((flags & MAP_PRIVATE) != 0 && (prot & PROT_WRITE) != 0)) { - u_int64_t used = ptoa(p->p_vmspace->vm_dused); - if (p->p_rlimit[RLIMIT_DATA].rlim_cur < used || - size > p->p_rlimit[RLIMIT_DATA].rlim_cur - used) { + if (size > + (p->p_rlimit[RLIMIT_DATA].rlim_cur - ptoa(p->p_vmspace->vm_dused))) { error = ENOMEM; goto out; } |