aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/kernel/vmem.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-11-12 22:47:49 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2022-11-12 22:47:49 +0200
commit845cf97e1faee613e3e73900f5f93bfcedc831f1 (patch)
tree17d754897f1b7bcaa8f465d917b30296e5abc3e2 /arch/riscv64/kernel/vmem.c
parent605ccff557d031aa83c79087f419769756aa0953 (diff)
downloadkmi-845cf97e1faee613e3e73900f5f93bfcedc831f1.tar.gz
kmi-845cf97e1faee613e3e73900f5f93bfcedc831f1.zip
release mode, ~600k requests
Diffstat (limited to 'arch/riscv64/kernel/vmem.c')
-rw-r--r--arch/riscv64/kernel/vmem.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c
index 68ccbd3..a3903f1 100644
--- a/arch/riscv64/kernel/vmem.c
+++ b/arch/riscv64/kernel/vmem.c
@@ -345,11 +345,16 @@ vm_t setup_kernel_io(struct vmem *b, vm_t paddr)
}
#endif
+struct uvmem_map {
+ struct vmem *leaf[CSTACK_PAGE - 1];
+};
+
stat_t clone_uvmem(struct vmem *r, struct vmem *b)
{
/** \todo error checking? */
- for (size_t i = 0; i < CSTACK_PAGE; ++i)
- b->leaf[i] = r->leaf[i];
+ struct uvmem_map *rm = (struct uvmem_map *)(r);
+ struct uvmem_map *bm = (struct uvmem_map *)(b);
+ *bm = *rm;
return OK;
}