summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_trap.c
diff options
context:
space:
mode:
authorchmr <chmr@FreeBSD.org>1993-11-01 11:51:29 +0000
committerchmr <chmr@FreeBSD.org>1993-11-01 11:51:29 +0000
commitbdd2e5afa73f176fc322390915d0533e80aa1948 (patch)
treeaf0e0a03c7a051d2f9e7fb000f2b075f428831cf /sys/kern/subr_trap.c
parent6deb924798b89ded7c930c735c412fa6024747b2 (diff)
downloadFreeBSD-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.c6
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));
OpenPOWER on IntegriCloud