Index: sys/arch/aarch64/aarch64/fault.c =================================================================== RCS file: /home/netbsd/src/sys/arch/aarch64/aarch64/fault.c,v retrieving revision 1.19 diff -p -u -r1.19 fault.c --- sys/arch/aarch64/aarch64/fault.c 9 Aug 2020 07:26:20 -0000 1.19 +++ sys/arch/aarch64/aarch64/fault.c 13 Oct 2020 03:00:41 -0000 @@ -134,7 +134,7 @@ data_abort_handler(struct trapframe *tf, vaddr_t va; uint32_t esr, fsc, rw; vm_prot_t ftype; - int error = 0, len; + int error = EFAULT, len; const bool user = IS_SPSR_USER(tf->tf_spsr) ? true : false; bool is_pan_trap = false; @@ -169,10 +169,8 @@ data_abort_handler(struct trapframe *tf, map = &p->p_vmspace->vm_map; UVMHIST_LOG(pmaphist, "use user vm_map %p (kernel_map=%p)", map, kernel_map, 0, 0); - } else { - error = EINVAL; + } else goto do_fault; - } if ((eclass == ESR_EC_INSN_ABT_EL0) || (eclass == ESR_EC_INSN_ABT_EL1)) ftype = VM_PROT_EXECUTE; @@ -223,7 +221,7 @@ data_abort_handler(struct trapframe *tf, if (curcpu()->ci_intr_depth == 0) { fb = cpu_disable_onfault(); if (fb != NULL) { - cpu_jump_onfault(tf, fb, EFAULT); + cpu_jump_onfault(tf, fb, error); return; } }