From 95a5c66267b597b07ea9b5dce18c5f5fe7f13630 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Sun, 8 Jun 2025 23:50:08 -0400 Subject: 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 --- sys/arch/amd64/amd64/proc_machdep.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sys/arch') 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; -- cgit v1.2.3