svn commit: r215369 - stable/8/sys/vm
Alan Cox
alc at FreeBSD.org
Tue Nov 16 04:40:28 UTC 2010
Author: alc
Date: Tue Nov 16 04:40:27 2010
New Revision: 215369
URL: http://svn.freebsd.org/changeset/base/215369
Log:
MFC r214953
In case the stack size reaches its limit and its growth must be
restricted, ensure that grow_amount is a multiple of the page size.
Otherwise, the kernel may crash in swap_reserve_by_uid() on HEAD and
FreeBSD 8.x, and produce a core file with a missing stack on FreeBSD
7.x.
Modified:
stable/8/sys/vm/vm_map.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/vm/vm_map.c
==============================================================================
--- stable/8/sys/vm/vm_map.c Tue Nov 16 04:40:03 2010 (r215368)
+++ stable/8/sys/vm/vm_map.c Tue Nov 16 04:40:27 2010 (r215369)
@@ -3343,7 +3343,8 @@ Retry:
if (grow_amount > stack_entry->avail_ssize)
grow_amount = stack_entry->avail_ssize;
if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > stacklim)) {
- grow_amount = stacklim - ctob(vm->vm_ssize);
+ grow_amount = trunc_page((vm_size_t)stacklim) -
+ ctob(vm->vm_ssize);
}
/* If we would blow our VMEM resource limit, no go */
More information about the svn-src-stable
mailing list