aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/kernel/vmem.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-26 17:50:11 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-26 17:50:11 +0200
commitd98ec57128628b81fcd32269a92742a037b7f713 (patch)
tree0e3f8d78d8347ef0a6e69d41b9d9be20c822b642 /arch/riscv/kernel/vmem.c
parenta64f3588ff5da7f148659ccb0eff844ccfb57088 (diff)
downloadkmi-d98ec57128628b81fcd32269a92742a037b7f713.tar.gz
kmi-d98ec57128628b81fcd32269a92742a037b7f713.zip
First useful jump to userspace!
Diffstat (limited to 'arch/riscv/kernel/vmem.c')
-rw-r--r--arch/riscv/kernel/vmem.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/riscv/kernel/vmem.c b/arch/riscv/kernel/vmem.c
index bf49716..e3680b3 100644
--- a/arch/riscv/kernel/vmem.c
+++ b/arch/riscv/kernel/vmem.c
@@ -19,7 +19,8 @@
static pm_t *__find_vmem(struct vm_branch_t *b, vm_t v, enum mm_order_t *o)
{
enum mm_order_t top = __mm_max_order;
- *o = MM_O0;
+ if(o)
+ *o = MM_O0;
do {
size_t idx = vm_to_index(v, top);
pm_t pte = (pm_t)b->leaf[idx];
@@ -59,7 +60,7 @@ int stat_vmem(struct vm_branch_t *branch, vm_t vaddr, pm_t *paddr,
pm_t *pte = __find_vmem(branch, vaddr, order);
if(pte){
if(paddr)
- *paddr = pte_paddr(*pte);
+ *paddr = (pm_t)pte_addr(*pte);
if(flags)
*flags = pte_flags(*pte);