[BACK]Return to genfs_io.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / miscfs / genfs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/miscfs/genfs/genfs_io.c between version 1.36.2.31 and 1.36.2.32

version 1.36.2.31, 2010/11/15 17:32:01 version 1.36.2.32, 2010/11/16 07:44:25
Line 869  genfs_do_getpages_xip1(
Line 869  genfs_do_getpages_xip1(
                  * XIP page metadata assignment                   * XIP page metadata assignment
                  * - Unallocated block is redirected to the dedicated zero'ed                   * - Unallocated block is redirected to the dedicated zero'ed
                  *   page.                   *   page.
                  * - Assume that struct vm_page *[] array of this segment is  
                  *   allocated and linearly ordered by physical address.  
                  */                   */
                 if (blkno < 0) {                  if (blkno < 0) {
                         zero_page = uvm_page_zeropage_alloc();                          zero_page = uvm_page_zeropage_alloc();
                         KASSERT(zero_page != NULL);                          KASSERT(zero_page != NULL);
                         pps[i] = zero_page;                          pps[i] = zero_page;
                 } else {                  } else {
                         struct vm_physseg *seg;                          daddr_t blk_off, fs_off;
                         daddr_t seg_off;  
                         struct vm_page *pg;  
   
                         seg = devvp->v_physseg;  
                         KASSERT(seg != NULL);  
                         /* bus_space_mmap cookie -> paddr_t */  
                         seg_off = (blkno << dev_bshift) +  
                             (off - (lbn << fs_bshift));  
                         KASSERT((seg_off & PAGE_MASK) == 0);  
                         pg = seg->pgs + (seg_off >> PAGE_SHIFT);  
                         KASSERT(pg->phys_addr ==  
                             (seg->start << PAGE_SHIFT) + seg_off);  
   
                         pps[i] = pg;                          blk_off = blkno << dev_bshift;
                           fs_off = off - (lbn << fs_bshift);
   
                           pps[i] = uvn_findpage_xip(&devvp->v_uobj,
                               blk_off + fs_off);
                           KASSERT(pps[i] != NULL);
                 }                  }
   
                 UVMHIST_LOG(ubchist, "xip pgs %d => phys_addr=0x%lx (%p)",                  UVMHIST_LOG(ubchist, "xip pgs %d => phys_addr=0x%lx (%p)",

Legend:
Removed from v.1.36.2.31  
changed lines
  Added in v.1.36.2.32

CVSweb <webmaster@jp.NetBSD.org>