diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-11-02 15:28:23 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-11-02 15:28:23 +0200 |
| commit | d127146846f4d6561e15000d1469b715dafdb627 (patch) | |
| tree | 2ee7d7512023df0dc25f0bd51da1c378ebb1a400 /arch/riscv64/kernel | |
| parent | 4ce6aa975be40286465cd9ac6a669ff5a95fe5a1 (diff) | |
| download | kmi-d127146846f4d6561e15000d1469b715dafdb627.tar.gz kmi-d127146846f4d6561e15000d1469b715dafdb627.zip | |
initial exec support
Diffstat (limited to 'arch/riscv64/kernel')
| -rw-r--r-- | arch/riscv64/kernel/vmem.c | 8 |
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; |
