From dc71f4f38f49ed3a3b67098b7926a0731e9ce225 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 30 Oct 2024 14:23:07 +0200 Subject: remember to set regs to some valid address + Worked in qemu, failed in visionfive2, fixed. --- src/proc.c | 3 ++- src/tcb.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/proc.c b/src/proc.c index 62b3e42..b1682bf 100644 --- a/src/proc.c +++ b/src/proc.c @@ -56,6 +56,8 @@ stat_t init_proc(void *fdt, vm_t *proc_fdt, vm_t *proc_initrd) * save them here before we switch */ use_tcb(t); + set_stack(t, t->rpc_stack - BASE_PAGE_SIZE); + /* allocate stacks etc after ELF file to make sure nothing of importance * clashes */ stat_t ret = prepare_proc(t, get_init_base(fdt), 0); @@ -72,7 +74,6 @@ stat_t init_proc(void *fdt, vm_t *proc_fdt, vm_t *proc_initrd) *proc_initrd = map_shared_fixed_uvmem(t, initrd, get_initrdsize(fdt), VM_V | VM_R | VM_U); - info("mapped fdt at %lx\n", *proc_fdt); info("mapped initrd at %lx\n", *proc_initrd); return OK; diff --git a/src/tcb.c b/src/tcb.c index 818d4e7..ab93f77 100644 --- a/src/tcb.c +++ b/src/tcb.c @@ -119,7 +119,6 @@ static stat_t __init_free_thread(struct tcb *t) return ERR_OOMEM; } - t->regs = t->rpc_stack - sizeof(struct call_ctx); t->pid = t->tid; t->eid = t->tid; t->rid = t->tid; -- cgit v1.3