Module Name:    src
Committed By:   uebayasi
Date:           Fri Nov 19 04:13:21 UTC 2010

Modified Files:
        src/sys/miscfs/genfs [uebayasi-xip]: genfs_io.c

Log Message:
Comment out XIP hole page redirection code.  Since makefs(8) doesn't
support hole, and these code paths can be never tested.

(The current XIP is read-only, so hole pages are pointless in
practice.)


To generate a diff of this commit:
cvs rdiff -u -r1.36.2.36 -r1.36.2.37 src/sys/miscfs/genfs/genfs_io.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/miscfs/genfs/genfs_io.c
diff -u src/sys/miscfs/genfs/genfs_io.c:1.36.2.36 src/sys/miscfs/genfs/genfs_io.c:1.36.2.37
--- src/sys/miscfs/genfs/genfs_io.c:1.36.2.36	Fri Nov 19 02:30:41 2010
+++ src/sys/miscfs/genfs/genfs_io.c	Fri Nov 19 04:13:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs_io.c,v 1.36.2.36 2010/11/19 02:30:41 uebayasi Exp $	*/
+/*	$NetBSD: genfs_io.c,v 1.36.2.37 2010/11/19 04:13:21 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.36.2.36 2010/11/19 02:30:41 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.36.2.37 2010/11/19 04:13:21 uebayasi Exp $");
 
 #include "opt_xip.h"
 
@@ -286,7 +286,6 @@
 		goto out_err;
 	}
 	mutex_exit(&uobj->vmobjlock);
-
 	/*
 	 * find the requested pages and make some simple checks.
 	 * leave space in the page array for a whole block.
@@ -859,7 +858,9 @@
 	int npages;
 	int fs_bshift, fs_bsize, dev_bshift, dev_bsize;
 	int i;
+#ifdef XIP_HOLE
 	struct vm_page *zero_page;
+#endif
 
 	UVMHIST_FUNC("genfs_do_getpages_xip_io"); UVMHIST_CALLED(ubchist);
 
@@ -875,7 +876,9 @@
 	ebkoff = ((offset + PAGE_SIZE * npages) + (fs_bsize - 1)) &
 	    ~(fs_bsize - 1);
 
+#ifdef XIP_HOLE
 	zero_page = NULL;
+#endif
 
 	UVMHIST_LOG(ubchist, "xip npages=%d sbkoff=%lx ebkoff=%lx",
 	    npages, (long)sbkoff, (long)ebkoff, 0);
@@ -902,9 +905,13 @@
 		 *   page.
 		 */
 		if (blkno < 0) {
+#ifdef XIP_HOLE
 			zero_page = uvm_page_zeropage_alloc();
 			KASSERT(zero_page != NULL);
 			pps[i] = zero_page;
+#else
+			panic("XIP hole is not supported yet!");
+#endif
 		} else {
 			daddr_t blk_off, fs_off;
 
@@ -931,8 +938,10 @@
 		struct vm_page *pg = pps[i];
 
 		KASSERT((pg->flags & PG_RDONLY) != 0);
+#ifdef XIP_HOLE
 		if (pg == zero_page)
 			continue;
+#endif
 		KASSERT((pg->flags & PG_BUSY) == 0);
 		KASSERT((pg->flags & PG_CLEAN) != 0);
 		KASSERT((pg->flags & PG_DEVICE) != 0);
@@ -1521,8 +1530,10 @@
 	 */
 
 	off_t off, eof;
+#ifdef XIP_HOLE
 	struct vm_page *zero_page;
 	bool put_zero_page;
+#endif
 
 	off = trunc_page(startoff);
 	if (endoff == 0 || (flags & PGO_ALLPAGES))
@@ -1530,10 +1541,12 @@
 	else
 		eof = endoff;
 
+#ifdef XIP_HOLE
 	zero_page = uvm_pagelookup(uobj, 0);
 	KASSERT(zero_page != NULL || uobj->uo_npages == 0);
 	KASSERT(zero_page == NULL || uobj->uo_npages == 1);
 	put_zero_page = false;
+#endif
 
 	while (off < eof) {
 		int npages, orignpages, error, i;
@@ -1554,9 +1567,11 @@
 			pg = pgs[i];
 			if (pg == NULL || pg == PGO_DONTCARE)
 				continue;
+#ifdef XIP_HOLE
 			if (pg == uvm_page_zeropage)
 				/* Do nothing for holes. */
 				continue;
+#endif
 			/*
 			 * Freeing normal XIP pages; nothing to do.
 			 */

Reply via email to