summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2003-07-26 04:14:57 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2003-07-26 04:14:57 +0000
commit188898bbd93f2679a762bf106a01e576be8031db (patch)
treeac1169475d02293d14276c48f841292e216bc076
parentdf2eee892941b95433346d4324b983f0ee5b7bf0 (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.c8
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 */
}