Module Name:    src
Committed By:   uebayasi
Date:           Tue Mar 23 01:58:14 UTC 2010

Modified Files:
        src/sys/miscfs/genfs [uebayasi-xip]: genfs_io.c
        src/sys/miscfs/specfs [uebayasi-xip]: specdev.h
        src/sys/sys [uebayasi-xip]: mount.h
        src/sys/ufs/ffs [uebayasi-xip]: ffs_vfsops.c

Log Message:
Put run-time XIP-specific per-mount data in struct specdev, not struct mount.


To generate a diff of this commit:
cvs rdiff -u -r1.36.2.5 -r1.36.2.6 src/sys/miscfs/genfs/genfs_io.c
cvs rdiff -u -r1.39 -r1.39.2.1 src/sys/miscfs/specfs/specdev.h
cvs rdiff -u -r1.195.2.1 -r1.195.2.2 src/sys/sys/mount.h
cvs rdiff -u -r1.257.2.2 -r1.257.2.3 src/sys/ufs/ffs/ffs_vfsops.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.5 src/sys/miscfs/genfs/genfs_io.c:1.36.2.6
--- src/sys/miscfs/genfs/genfs_io.c:1.36.2.5	Wed Mar 17 16:09:17 2010
+++ src/sys/miscfs/genfs/genfs_io.c	Tue Mar 23 01:58:13 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs_io.c,v 1.36.2.5 2010/03/17 16:09:17 uebayasi Exp $	*/
+/*	$NetBSD: genfs_io.c,v 1.36.2.6 2010/03/23 01:58:13 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.5 2010/03/17 16:09:17 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.36.2.6 2010/03/23 01:58:13 uebayasi Exp $");
 
 #include "opt_device_page.h"
 #include "opt_xip.h"
@@ -813,7 +813,7 @@
 			phys_addr = uvm_pageofzero_xip_phys_addr();
 		} else {
 			/* bus_space_mmap cookie -> paddr_t */
-			phys_addr = pmap_phys_address(vp->v_mount->mnt_phys_addr) +
+			phys_addr = pmap_phys_address(devvp->v_phys_addr) +
 			    (blkno << dev_bshift) +
 			    (off - (lbn << fs_bshift));
 		}

Index: src/sys/miscfs/specfs/specdev.h
diff -u src/sys/miscfs/specfs/specdev.h:1.39 src/sys/miscfs/specfs/specdev.h:1.39.2.1
--- src/sys/miscfs/specfs/specdev.h:1.39	Sat Nov 14 18:36:57 2009
+++ src/sys/miscfs/specfs/specdev.h	Tue Mar 23 01:58:13 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: specdev.h,v 1.39 2009/11/14 18:36:57 elad Exp $	*/
+/*	$NetBSD: specdev.h,v 1.39.2.1 2010/03/23 01:58:13 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -78,6 +78,7 @@
 	u_int		sd_opencnt;
 	u_int		sd_refcnt;
 	dev_t		sd_rdev;
+	paddr_t		sd_phys_addr;	/* XIP */
 } specdev_t;
 
 /*
@@ -87,6 +88,7 @@
 #define v_rdev		v_specnode->sn_rdev
 #define v_speclockf	v_specnode->sn_dev->sd_lockf
 #define v_specmountpoint v_specnode->sn_dev->sd_mountpoint
+#define v_phys_addr	v_specnode->sn_dev->sd_phys_addr
 
 /*
  * Special device management

Index: src/sys/sys/mount.h
diff -u src/sys/sys/mount.h:1.195.2.1 src/sys/sys/mount.h:1.195.2.2
--- src/sys/sys/mount.h:1.195.2.1	Thu Feb 11 05:20:28 2010
+++ src/sys/sys/mount.h	Tue Mar 23 01:58:13 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: mount.h,v 1.195.2.1 2010/02/11 05:20:28 uebayasi Exp $	*/
+/*	$NetBSD: mount.h,v 1.195.2.2 2010/03/23 01:58:13 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1989, 1991, 1993
@@ -128,8 +128,6 @@
 	struct wapbl_replay
 			*mnt_wapbl_replay;	/* replay support XXX: what? */
 	uint64_t	mnt_gen;
-
-	paddr_t		mnt_phys_addr;		/* XIP */
 };
 
 /*

Index: src/sys/ufs/ffs/ffs_vfsops.c
diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.257.2.2 src/sys/ufs/ffs/ffs_vfsops.c:1.257.2.3
--- src/sys/ufs/ffs/ffs_vfsops.c:1.257.2.2	Tue Feb 23 07:00:58 2010
+++ src/sys/ufs/ffs/ffs_vfsops.c	Tue Mar 23 01:58:14 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ffs_vfsops.c,v 1.257.2.2 2010/02/23 07:00:58 uebayasi Exp $	*/
+/*	$NetBSD: ffs_vfsops.c,v 1.257.2.3 2010/03/23 01:58:14 uebayasi Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.257.2.2 2010/02/23 07:00:58 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.257.2.3 2010/03/23 01:58:14 uebayasi Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -1184,7 +1184,7 @@
 			    cred) == 0) &&
 			    phys_addr != 0) {
 				mp->mnt_iflag |= IMNT_XIP;
-				mp->mnt_phys_addr = phys_addr;
+				devvp->v_phys_addr = phys_addr;	/* XXX */
 			} else
 				printf("device doesn't support DIOCGPHYSADDR\n");
 		}

Reply via email to