diff options
author | chmr <chmr@FreeBSD.org> | 1993-11-01 11:51:29 +0000 |
---|---|---|
committer | chmr <chmr@FreeBSD.org> | 1993-11-01 11:51:29 +0000 |
commit | bdd2e5afa73f176fc322390915d0533e80aa1948 (patch) | |
tree | af0e0a03c7a051d2f9e7fb000f2b075f428831cf /sys/kern/subr_trap.c | |
parent | 6deb924798b89ded7c930c735c412fa6024747b2 (diff) | |
download | FreeBSD-src-bdd2e5afa73f176fc322390915d0533e80aa1948.zip FreeBSD-src-bdd2e5afa73f176fc322390915d0533e80aa1948.tar.gz |
Modified the "rude stack hack" that it only applies to addresses within
the stack area and not memory above VM_MAXUSER_ADDRESS.
That way, copyout and friends now work for pages whose page table entries
have not yet been allocated/been paged out.
Diffstat (limited to 'sys/kern/subr_trap.c')
-rw-r--r-- | sys/kern/subr_trap.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index 989a732..5066c9b 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id$ + * $Id: trap.c,v 1.4 1993/10/15 10:34:27 rgrimes Exp $ */ /* @@ -278,7 +278,9 @@ copyfault: * XXX: rude hack to make stack limits "work" */ nss = 0; - if ((caddr_t)va >= vm->vm_maxsaddr && map != kernel_map + if ((caddr_t)va >= vm->vm_maxsaddr + && (caddr_t)va < (caddr_t)VM_MAXUSER_ADDRESS + && map != kernel_map && dostacklimits) { nss = clrnd(btoc((unsigned)vm->vm_maxsaddr + MAXSSIZ - (unsigned)va)); |