aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-11-02 15:28:23 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2024-11-02 15:28:23 +0200
commitd127146846f4d6561e15000d1469b715dafdb627 (patch)
tree2ee7d7512023df0dc25f0bd51da1c378ebb1a400 /arch
parent4ce6aa975be40286465cd9ac6a669ff5a95fe5a1 (diff)
downloadkmi-d127146846f4d6561e15000d1469b715dafdb627.tar.gz
kmi-d127146846f4d6561e15000d1469b715dafdb627.zip
initial exec support
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv64/kernel/vmem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c
index ee5bbb4..1b70493 100644
--- a/arch/riscv64/kernel/vmem.c
+++ b/arch/riscv64/kernel/vmem.c
@@ -313,10 +313,12 @@ stat_t map_vpage(struct vmem *branch, pm_t paddr, vm_t vaddr, vmflags_t flags,
}
size_t idx = vm_to_index(vaddr, top);
- assert(!is_branch(branch->leaf[idx]));
+ if (!__unused((pm_t)branch->leaf[idx]))
+ return ERR_INVAL;
- branch->leaf[idx] =
- (struct vmem *)to_pte((pm_t)__pa(paddr), vp_flags(flags));
+ branch->leaf[idx] = (struct vmem *)to_pte(
+ (pm_t)__pa(paddr),
+ vp_flags(flags));
__add_graves(root, vm_to_index(vaddr, max_order()));
return OK;