diff options
-rw-r--r-- | sys/arch/arm/arm/fault.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/arch/arm/arm/fault.c b/sys/arch/arm/arm/fault.c index 40f362254bb..12a110cb1df 100644 --- a/sys/arch/arm/arm/fault.c +++ b/sys/arch/arm/arm/fault.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fault.c,v 1.40 2020/08/19 10:10:58 mpi Exp $ */ +/* $OpenBSD: fault.c,v 1.41 2020/09/14 18:23:32 deraadt Exp $ */ /* $NetBSD: fault.c,v 1.46 2004/01/21 15:39:21 skrll Exp $ */ /* @@ -208,10 +208,6 @@ data_abort_handler(trapframe_t *tf) if (user) { pcb->pcb_tf = tf; refreshcreds(p); - if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p), - "[%s]%d/%d sp=%lx inside %lx-%lx: not MAP_STACK\n", - uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial)) - goto out; } /* Invoke the appropriate handler, if necessary */ @@ -231,6 +227,13 @@ data_abort_handler(trapframe_t *tf) if (va < VM_MIN_ADDRESS || va >= VM_MAX_ADDRESS) curcpu()->ci_flush_bp(); + if (user) { + if (!uvm_map_inentry(p, &p->p_spinentry, PROC_STACK(p), + "[%s]%d/%d sp=%lx inside %lx-%lx: not MAP_STACK\n", + uvm_map_inentry_sp, p->p_vmspace->vm_map.sserial)) + goto out; + } + /* * At this point, we're dealing with one of the following data aborts: * |