diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2003-07-26 04:14:57 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2003-07-26 04:14:57 +0000 |
commit | 188898bbd93f2679a762bf106a01e576be8031db (patch) | |
tree | ac1169475d02293d14276c48f841292e216bc076 | |
parent | df2eee892941b95433346d4324b983f0ee5b7bf0 (diff) |
on syscall exit restore old cpl if there is a need; move call for softints processing towards after that
-rw-r--r-- | sys/arch/hppa/hppa/trap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c index df7da2c7861..78c6dd9509d 100644 --- a/sys/arch/hppa/hppa/trap.c +++ b/sys/arch/hppa/hppa/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.66 2003/06/17 04:39:39 jfb Exp $ */ +/* $OpenBSD: trap.c,v 1.67 2003/07/26 04:14:56 mickey Exp $ */ /* * Copyright (c) 1998-2003 Michael Shalayeff @@ -626,15 +626,17 @@ syscall(struct trapframe *frame) scdebug_ret(p, code, oerror, rval); #endif userret(p, frame->tf_iioq_head, 0); - splx(cpl); /* process softints */ #ifdef KTRACE if (KTRPOINT(p, KTR_SYSRET)) ktrsysret(p, code, oerror, rval[0]); #endif #ifdef DIAGNOSTIC - if (cpl != oldcpl) + if (cpl != oldcpl) { printf("WARNING: SPL (0x%x) NOT LOWERED ON " "syscall(0x%x, 0x%x, 0x%x, 0x%x...) EXIT, PID %d\n", cpl, code, args[0], args[1], args[2], p->p_pid); + cpl = oldcpl; + } #endif + splx(cpl); /* process softints */ } |