Page MenuHomeFreeBSD

D34174.diff
No OneTemporary

D34174.diff

diff --git a/sys/compat/linux/linux_mmap.c b/sys/compat/linux/linux_mmap.c
--- a/sys/compat/linux/linux_mmap.c
+++ b/sys/compat/linux/linux_mmap.c
@@ -176,7 +176,7 @@
* mmap's return value.
*/
PROC_LOCK(p);
- vms->vm_maxsaddr = (char *)p->p_sysent->sv_usrstack -
+ vms->vm_maxsaddr = (char *)round_page(vms->vm_stacktop) -
lim_cur_proc(p, RLIMIT_STACK);
PROC_UNLOCK(p);
}
diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c
--- a/sys/kern/kern_resource.c
+++ b/sys/kern/kern_resource.c
@@ -770,12 +770,12 @@
if (limp->rlim_cur > oldssiz.rlim_cur) {
prot = p->p_sysent->sv_stackprot;
size = limp->rlim_cur - oldssiz.rlim_cur;
- addr = p->p_sysent->sv_usrstack -
+ addr = round_page(p->p_vmspace->vm_stacktop) -
limp->rlim_cur;
} else {
prot = VM_PROT_NONE;
size = oldssiz.rlim_cur - limp->rlim_cur;
- addr = p->p_sysent->sv_usrstack -
+ addr = round_page(p->p_vmspace->vm_stacktop) -
oldssiz.rlim_cur;
}
addr = trunc_page(addr);
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -4664,7 +4664,7 @@
* limit.
*/
is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr &&
- addr < (vm_offset_t)p->p_sysent->sv_usrstack;
+ addr < (vm_offset_t)vm->vm_stacktop;
if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > stacklim))
return (KERN_NO_SPACE);

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 10, 8:09 PM (1 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16582956
Default Alt Text
D34174.diff (1 KB)

Event Timeline