summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/arch/arm/arm/fault.c13
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:
*