summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amd64')
-rw-r--r--sys/arch/amd64/amd64/trap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/amd64/amd64/trap.c b/sys/arch/amd64/amd64/trap.c
index 84a6a77..5b26334 100644
--- a/sys/arch/amd64/amd64/trap.c
+++ b/sys/arch/amd64/amd64/trap.c
@@ -176,8 +176,9 @@ trap_syscall(struct trapframe *tf)
void
trap_handler(struct trapframe *tf)
{
- splraise(IPL_HIGH);
+ int ipl;
+ ipl = splraise(IPL_HIGH);
if (tf->trapno >= NELEM(trap_type)) {
panic("got unknown trap %d\n", tf->trapno);
}
@@ -186,6 +187,7 @@ trap_handler(struct trapframe *tf)
/* Handle traps from userland */
if (ISSET(tf->cs, 3)) {
+ splx(ipl);
trap_user(tf);
return;
}