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