Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/subr_pcu.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/kern/subr_pcu.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.7 retrieving revision 1.8 diff -u -p -r1.7 -r1.8 --- src/sys/kern/subr_pcu.c 2011/06/06 22:04:34 1.7 +++ src/sys/kern/subr_pcu.c 2011/06/07 17:51:58 1.8 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_pcu.c,v 1.7 2011/06/06 22:04:34 matt Exp $ */ +/* $NetBSD: subr_pcu.c,v 1.8 2011/06/07 17:51:58 matt Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -57,7 +57,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: subr_pcu.c,v 1.7 2011/06/06 22:04:34 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_pcu.c,v 1.8 2011/06/07 17:51:58 matt Exp $"); #include #include @@ -108,7 +108,7 @@ pcu_discard_all(lwp_t *l) { const uint32_t pcu_inuse = l->l_pcu_used; - KASSERT(l == curlwp); + KASSERT(l == curlwp || ((l->l_flag & LW_SYSTEM) && pcu_inuse == 0)); if (__predict_true(pcu_inuse == 0)) { /* PCUs are not in use. */ @@ -138,7 +138,7 @@ pcu_save_all(lwp_t *l) { const uint32_t pcu_inuse = l->l_pcu_used; - KASSERT(l == curlwp); + KASSERT(l == curlwp || ((l->l_flag & LW_SYSTEM) && pcu_inuse == 0)); if (__predict_true(pcu_inuse == 0)) { /* PCUs are not in use. */