Page MenuHomeFreeBSD

D34174.id102505.diff
No OneTemporary

D34174.id102505.diff

Index: sys/compat/linux/linux_mmap.c
===================================================================
--- sys/compat/linux/linux_mmap.c
+++ 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);
}
Index: sys/kern/kern_resource.c
===================================================================
--- sys/kern/kern_resource.c
+++ sys/kern/kern_resource.c
@@ -760,12 +760,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);
Index: sys/vm/vm_map.c
===================================================================
--- sys/vm/vm_map.c
+++ 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
Fri, Sep 25, 12:07 AM (16 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39560733
Default Alt Text
D34174.id102505.diff (1 KB)

Event Timeline