Module Name: src Committed By: uebayasi Date: Tue Jul 20 15:43:48 UTC 2010
Modified Files: src/sys/miscfs/genfs [uebayasi-xip]: genfs_io.c Log Message: genfs_do_getpages_xip: Simplify code. To generate a diff of this commit: cvs rdiff -u -r1.36.2.16 -r1.36.2.17 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.16 src/sys/miscfs/genfs/genfs_io.c:1.36.2.17 --- src/sys/miscfs/genfs/genfs_io.c:1.36.2.16 Thu Jul 15 14:13:11 2010 +++ src/sys/miscfs/genfs/genfs_io.c Tue Jul 20 15:43:48 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: genfs_io.c,v 1.36.2.16 2010/07/15 14:13:11 uebayasi Exp $ */ +/* $NetBSD: genfs_io.c,v 1.36.2.17 2010/07/20 15:43:48 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.16 2010/07/15 14:13:11 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.36.2.17 2010/07/20 15:43:48 uebayasi Exp $"); #include "opt_xip.h" @@ -791,7 +791,6 @@ int npages; int fs_bshift, fs_bsize, dev_bshift, dev_bsize; int i; - paddr_t phys_addr; UVMHIST_FUNC("genfs_do_getpages_xip"); UVMHIST_CALLED(ubchist); @@ -840,24 +839,22 @@ pps[i] = xip_zero_page; } else { struct vm_physseg *seg; + daddr_t seg_off; struct vm_page *pg; seg = devvp->v_physseg; KASSERT(seg != NULL); /* bus_space_mmap cookie -> paddr_t */ - phys_addr = pmap_phys_address(seg->start) + - (blkno << dev_bshift) + - (off - (lbn << fs_bshift)); - pg = seg->pgs + - ((phys_addr >> PAGE_SHIFT) - seg->start); - KASSERT(pg->phys_addr == phys_addr); + seg_off = (blkno << dev_bshift) + (off - (lbn << fs_bshift)); + pg = seg->pgs + (seg_off >> PAGE_SHIFT); + KASSERT(pg->phys_addr == pmap_phys_address(seg->start) + seg_off); pps[i] = pg; } UVMHIST_LOG(ubchist, "xip pgs %d => phys_addr=0x%lx (%p)", i, - (long)phys_addr, + (long)pg->phys_addr, pps[i], 0);