aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64/kernel')
-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;