summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-06-08 23:50:08 -0400
committerIan Moffett <ian@osmora.org>2025-06-08 23:50:08 -0400
commit95a5c66267b597b07ea9b5dce18c5f5fe7f13630 (patch)
tree721f4681de3189fbaadfc8ee85ccdcefe5fd6f81 /sys/arch
parent23dd48314900691c8f1cebbc7f592104a36fe2ab (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.c5
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;