summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/armv7/armv7/intr.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/arch/armv7/armv7/intr.c b/sys/arch/armv7/armv7/intr.c
index cdd74cb11e5..62938a9d33a 100644
--- a/sys/arch/armv7/armv7/intr.c
+++ b/sys/arch/armv7/armv7/intr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.c,v 1.1 2013/09/04 14:38:25 patrick Exp $ */
+/* $OpenBSD: intr.c,v 1.2 2013/09/10 12:36:57 patrick Exp $ */
/*
* Copyright (c) 2011 Dale Rahn <drahn@openbsd.org>
*
@@ -275,8 +275,7 @@ splx(int ipl)
void
arm_splassert_check(int wantipl, const char *func)
{
- struct cpu_info *ci = curcpu();
- int oldipl = ci->ci_cpl;
+ int oldipl = curcpu()->ci_cpl;
if (oldipl < wantipl) {
splassert_fail(wantipl, oldipl, func);
@@ -286,6 +285,10 @@ arm_splassert_check(int wantipl, const char *func)
*/
arm_intr_func.setipl(wantipl);
}
+
+ if (wantipl == IPL_NONE && curcpu()->ci_idepth != 0) {
+ splassert_fail(-1, curcpu()->ci_idepth, func);
+ }
}
#endif