an interrupt handler at an ipl level higher than what you're
splasserting you should be at. if you think code should be protected
by IPL_BIO and its entered from an interrupt handler established
at IPL_NET, you have a bug.
add some asserts to gets and puts so we can pick those cases up.
-/* $OpenBSD: subr_pool.c,v 1.176 2015/01/04 08:54:01 dlg Exp $ */
+/* $OpenBSD: subr_pool.c,v 1.177 2015/01/05 23:54:18 dlg Exp $ */
/* $NetBSD: subr_pool.c,v 1.61 2001/09/26 07:14:56 chs Exp $ */
/*-
MUTEX_ASSERT_LOCKED(&pp->pr_mtx);
+ if (pp->pr_ipl != -1)
+ splassert(pp->pr_ipl);
+
/*
* Account for this item now to avoid races if we need to give up
* pr_mtx to allocate a page.
mtx_enter(&pp->pr_mtx);
+ if (pp->pr_ipl != -1)
+ splassert(pp->pr_ipl);
+
ph = pr_find_pagehead(pp, v);
#ifdef DIAGNOSTIC