diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2026-05-07 16:00:31 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2026-05-07 17:00:14 +0000 |
| commit | 642dd17ee94377c3d5533d05d0d9a58b88f60387 (patch) | |
| tree | aecf3fa0cd879e315a77997250dd09a1a2c92f02 | |
| parent | 4e7c1ff95a5187faee524055f22c4cf4134d1147 (diff) | |
vm_map_growstack(): consistently use local vars instead of curthread/proc
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56863
| -rw-r--r-- | sys/vm/vm_map.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 63bdce9d60f8..0a81e62d2d63 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -4731,6 +4731,7 @@ static int vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_map_entry_t gap_entry) { vm_map_entry_t stack_entry; + struct thread *td; struct proc *p; struct vmspace *vm; vm_offset_t gap_end, gap_start, grow_start; @@ -4746,7 +4747,8 @@ vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_map_entry_t gap_entry) int error __diagused; #endif - p = curproc; + td = curthread; + p = td->td_proc; vm = p->p_vmspace; /* @@ -4760,9 +4762,9 @@ vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_map_entry_t gap_entry) MPASS(!vm_map_is_system(map)); - lmemlim = lim_cur(curthread, RLIMIT_MEMLOCK); - stacklim = lim_cur(curthread, RLIMIT_STACK); - vmemlim = lim_cur(curthread, RLIMIT_VMEM); + lmemlim = lim_cur(td, RLIMIT_MEMLOCK); + stacklim = lim_cur(td, RLIMIT_STACK); + vmemlim = lim_cur(td, RLIMIT_VMEM); retry: /* If addr is not in a hole for a stack grow area, no need to grow. */ if (gap_entry == NULL && !vm_map_lookup_entry(map, addr, &gap_entry)) @@ -4778,8 +4780,8 @@ retry: } else { return (KERN_FAILURE); } - guard = ((curproc->p_flag2 & P2_STKGAP_DISABLE) != 0 || - (curproc->p_fctl0 & NT_FREEBSD_FCTL_STKGAP_DISABLE) != 0) ? 0 : + guard = ((p->p_flag2 & P2_STKGAP_DISABLE) != 0 || + (p->p_fctl0 & NT_FREEBSD_FCTL_STKGAP_DISABLE) != 0) ? 0 : gap_entry->next_read; max_grow = gap_entry->end - gap_entry->start; if (guard > max_grow) |
