Use vmspace->vm_stacktop in place of sv_usrstack in more places.
Reviewed by: markj Obtained from: CheriBSD Differential Revision: https://reviews.freebsd.org/D34174
This commit is contained in:
parent
01b0c35984
commit
becaf6433b
@ -176,7 +176,7 @@ linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot,
|
||||
* 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);
|
||||
}
|
||||
|
@ -770,12 +770,12 @@ kern_proc_setrlimit(struct thread *td, struct proc *p, u_int which,
|
||||
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);
|
||||
|
@ -4664,7 +4664,7 @@ vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_map_entry_t gap_entry)
|
||||
* 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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user