Module Name: src
Committed By: matt
Date: Tue Jun 7 17:51:58 UTC 2011
Modified Files:
src/sys/kern: subr_pcu.c
Log Message:
Make pcu_save_all and pcu_discard_all KASSERTs accept LW_SYSTEM threads
since kthread_create will call lwp_create with lwp0 which may not be curlwp.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/kern/subr_pcu.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/subr_pcu.c
diff -u src/sys/kern/subr_pcu.c:1.7 src/sys/kern/subr_pcu.c:1.8
--- src/sys/kern/subr_pcu.c:1.7 Mon Jun 6 22:04:34 2011
+++ src/sys/kern/subr_pcu.c Tue Jun 7 17:51:58 2011
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/cpu.h>
@@ -108,7 +108,7 @@
{
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 @@
{
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. */