Module Name:    src
Committed By:   uebayasi
Date:           Wed Aug 25 14:23:16 UTC 2010

Modified Files:
        src/sys/uvm [uebayasi-xip]: uvm_page.c

Log Message:
Fix DIAGNOSTIC build.  Sprinkle some assertions.


To generate a diff of this commit:
cvs rdiff -u -r1.153.2.53 -r1.153.2.54 src/sys/uvm/uvm_page.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/uvm/uvm_page.c
diff -u src/sys/uvm/uvm_page.c:1.153.2.53 src/sys/uvm/uvm_page.c:1.153.2.54
--- src/sys/uvm/uvm_page.c:1.153.2.53	Wed Aug 11 13:14:55 2010
+++ src/sys/uvm/uvm_page.c	Wed Aug 25 14:23:16 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.c,v 1.153.2.53 2010/08/11 13:14:55 uebayasi Exp $	*/
+/*	$NetBSD: uvm_page.c,v 1.153.2.54 2010/08/25 14:23:16 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -97,7 +97,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.53 2010/08/11 13:14:55 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.54 2010/08/25 14:23:16 uebayasi Exp $");
 
 #include "opt_ddb.h"
 #include "opt_uvmhist.h"
@@ -873,7 +873,10 @@
 #endif
 	}
 
+#ifdef DIAGNOSTIC
+	extern int uvm_physseg_inited;
 	KASSERT(uvm_physseg_inited);
+#endif
 
 #ifdef __HAVE_PMAP_PHYSSEG
 #ifdef __HAVE_PMAP_PHYSSEG_INIT
@@ -902,13 +905,14 @@
 }
 #endif
 
+int uvm_physseg_inited;
+
 static struct vm_physseg *
 uvm_physseg_alloc(struct vm_physseg_freelist *freelist,
     struct vm_physseg **segs, int nsegs,
     const paddr_t start, const paddr_t end)
 {
 	struct vm_physseg *ps;
-	static int uvm_physseg_inited;
 
 	if (uvmexp.pagesize == 0)
 		panic("uvm_page_physload: page size not set!");
@@ -1584,6 +1588,8 @@
 			pmap_zero_page(VM_PAGE_TO_PHYS(pg));
 	}
 
+	KASSERT((pg->pqflags & PQ_FIXED) == 0);
+
 	return(pg);
 
  fail:
@@ -2111,6 +2117,7 @@
 {
 
 	KASSERT(mutex_owned(&uvm_pageqlock));
+	KASSERT((pg->pqflags & PQ_FIXED) == 0);
 	KASSERT(pg->wire_count != 0 || uvmpdpol_pageisqueued_p(pg));
 	uvmpdpol_pagedeactivate(pg);
 }
@@ -2126,6 +2133,7 @@
 {
 
 	KASSERT(mutex_owned(&uvm_pageqlock));
+	KASSERT((pg->pqflags & PQ_FIXED) == 0);
 #if defined(READAHEAD_STATS)
 	if ((pg->pqflags & PQ_READAHEAD) != 0) {
 		uvm_ra_hit.ev_count++;
@@ -2146,6 +2154,7 @@
 uvm_pagedequeue(struct vm_page *pg)
 {
 
+	KASSERT((pg->pqflags & PQ_FIXED) == 0);
 	if (uvmpdpol_pageisqueued_p(pg)) {
 		KASSERT(mutex_owned(&uvm_pageqlock));
 	}
@@ -2163,6 +2172,7 @@
 {
 
 	KASSERT(mutex_owned(&uvm_pageqlock));
+	KASSERT((pg->pqflags & PQ_FIXED) == 0);
 	if (pg->wire_count != 0) {
 		return;
 	}

Reply via email to