diff options
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/amd64/amd64/trap.c | 4 |
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; } |