aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv64/kernel/entry.S2
-rw-r--r--arch/riscv64/kernel/proc.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/riscv64/kernel/entry.S b/arch/riscv64/kernel/entry.S
index 815694b..1680a35 100644
--- a/arch/riscv64/kernel/entry.S
+++ b/arch/riscv64/kernel/entry.S
@@ -90,7 +90,7 @@ continue_trap:
save_regs
save_args
- mv t5, a0
+ mv a0, t5
call riscv_handle_interrupt
j _load_context
diff --git a/arch/riscv64/kernel/proc.c b/arch/riscv64/kernel/proc.c
index 55ccbb8..0c43b3d 100644
--- a/arch/riscv64/kernel/proc.c
+++ b/arch/riscv64/kernel/proc.c
@@ -8,6 +8,7 @@
#include <kmi/tcb.h>
#include <kmi/elf.h>
+#include <kmi/bkl.h>
#include <kmi/string.h>
#include <arch/proc.h>
@@ -27,6 +28,7 @@ void run_init(struct tcb *t, vm_t fdt, vm_t initrd)
* Could be fixed with a separate pure asm run_init, but I guess this
* works for now.
*/
+ bkl_unlock();
__asm__ volatile ("mv sp, %0\n"
"mv a0, %1\n"
"mv a1, %2\n"