Index: sys/riscv/riscv/stack_machdep.c =================================================================== --- sys/riscv/riscv/stack_machdep.c +++ sys/riscv/riscv/stack_machdep.c @@ -57,8 +57,7 @@ (vm_offset_t)frame->fp >= td->td_kstack + td->td_kstack_pages * PAGE_SIZE) break; - unwind_frame(frame); - if (!INKERNEL((vm_offset_t)frame->pc)) + if (unwind_frame(frame) < 0) break; if (stack_put(st, frame->pc) == -1) break; Index: sys/riscv/riscv/unwind.c =================================================================== --- sys/riscv/riscv/unwind.c +++ sys/riscv/riscv/unwind.c @@ -53,5 +53,7 @@ frame->fp = ((uintptr_t *)fp)[-2]; frame->pc = ((uintptr_t *)fp)[-1] - 4; + if (!INKERNEL(frame->pc)) + return (-1); return (0); }