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");
}