diff options
author | Ian Moffett <ian@osmora.org> | 2025-06-08 23:50:08 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-06-08 23:50:08 -0400 |
commit | 95a5c66267b597b07ea9b5dce18c5f5fe7f13630 (patch) | |
tree | 721f4681de3189fbaadfc8ee85ccdcefe5fd6f81 /sys/arch | |
parent | 23dd48314900691c8f1cebbc7f592104a36fe2ab (diff) |
kernel/amd64: proc: Cleanup user stack vm_map()
- Add prot var to keep track of flags to map with
- OR prot flags with PROT_USER if rpl is 3
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/amd64/amd64/proc_machdep.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/arch/amd64/amd64/proc_machdep.c b/sys/arch/amd64/amd64/proc_machdep.c index 4fe8580..407adb1 100644 --- a/sys/arch/amd64/amd64/proc_machdep.c +++ b/sys/arch/amd64/amd64/proc_machdep.c @@ -175,6 +175,7 @@ md_spawn(struct proc *p, struct proc *parent, uintptr_t ip) struct pcb *pcbp; uint8_t rpl = 0; int error; + vm_prot_t prot = PROT_READ | PROT_WRITE; tfp = &p->tf; @@ -216,8 +217,8 @@ md_spawn(struct proc *p, struct proc *parent, uintptr_t ip) stack_base += VM_HIGHER_HALF; p->flags |= PROC_KTD; } else { - vm_map(pcbp->addrsp, stack_base, stack_base, - PROT_READ | PROT_WRITE | PROT_USER, PROC_STACK_PAGES); + prot |= PROT_USER; + vm_map(pcbp->addrsp, stack_base, stack_base, prot, PROC_STACK_PAGES); } p->stack_base = stack_base; |