summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-08-07 17:31:42 +0000
committerjhb <jhb@FreeBSD.org>2001-08-07 17:31:42 +0000
commitb80b9bc08636427818bc7ee7ac20841643ad1025 (patch)
tree8523fe9cf4cfbb084f2b9aa61b8c54f846511b71 /sys/ia64
parentef322198c6df0f8f2420460d663e8d12b1e48ada (diff)
downloadFreeBSD-src-b80b9bc08636427818bc7ee7ac20841643ad1025.zip
FreeBSD-src-b80b9bc08636427818bc7ee7ac20841643ad1025.tar.gz
Grab Giant arond page faults. ia64 boots again in the simulator now.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/trap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c
index 5422a2f..4028515 100644
--- a/sys/ia64/ia64/trap.c
+++ b/sys/ia64/ia64/trap.c
@@ -286,6 +286,7 @@ trap(int vector, int imm, struct trapframe *framep)
p->p_addr->u_pcb.pcb_onfault = 0;
goto out;
}
+ mtx_lock(&Giant);
/*
* It is only a kernel address space fault iff:
@@ -405,11 +406,10 @@ trap(int vector, int imm, struct trapframe *framep)
#endif
trapsignal(p, i, ucode);
out:
- if (user) {
+ if (user)
userret(p, framep, sticks);
- if (mtx_owned(&Giant))
- mtx_unlock(&Giant);
- }
+ if (mtx_owned(&Giant))
+ mtx_unlock(&Giant);
return;
dopanic:
OpenPOWER on IntegriCloud