The branch main has been updated by dougm:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=1e8c2cb328bbb2d685acbcd269db32ad3ec45f26

commit 1e8c2cb328bbb2d685acbcd269db32ad3ec45f26
Author:     Doug Moore <[email protected]>
AuthorDate: 2025-12-23 18:34:20 +0000
Commit:     Doug Moore <[email protected]>
CommitDate: 2025-12-23 18:34:20 +0000

    vnode_pager: use ptoa(), atop()
    
    In vnode_pager.c, use ptoa() or atop() instead of arithmetic with
    PAGE_SIZE or PAGE_SHIFT.
    
    Reviewed by:    alc, kib
    Differential Revision:  https://reviews.freebsd.org/D49330
---
 sys/vm/vnode_pager.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 9693cb15f80d..040b4037df15 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -388,7 +388,7 @@ vnode_pager_haspage(vm_object_t object, vm_pindex_t pindex, 
int *before,
                return FALSE;
 
        bsize = vp->v_mount->mnt_stat.f_iosize;
-       pagesperblock = bsize / PAGE_SIZE;
+       pagesperblock = atop(bsize);
        blocksperpage = 0;
        if (pagesperblock > 0) {
                reqblock = pindex / pagesperblock;
@@ -645,8 +645,8 @@ vnode_pager_addr(struct vnode *vp, vm_ooffset_t address, 
daddr_t *rtaddress,
                        *rtaddress += voffset / DEV_BSIZE;
                if (run) {
                        *run += 1;
-                       *run *= bsize / PAGE_SIZE;
-                       *run -= voffset / PAGE_SIZE;
+                       *run *= atop(bsize);
+                       *run -= atop(voffset);
                }
        }
 
@@ -909,7 +909,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t 
*m, int count,
        object = vp->v_object;
        foff = IDX_TO_OFF(m[0]->pindex);
        bsize = vp->v_mount->mnt_stat.f_iosize;
-       pagesperblock = bsize / PAGE_SIZE;
+       pagesperblock = atop(bsize);
 
        KASSERT(foff < object->un_pager.vnp.vnp_size,
            ("%s: page %p offset beyond vp %p size", __func__, m[0], vp));
@@ -991,7 +991,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t 
*m, int count,
        bp->b_blkno += (foff % bsize) / DEV_BSIZE;
 
        /* Recalculate blocks available after/before to pages. */
-       poff = (foff % bsize) / PAGE_SIZE;
+       poff = atop(foff % bsize);
        before *= pagesperblock;
        before += poff;
        after *= pagesperblock;
@@ -1172,14 +1172,14 @@ vnode_pager_generic_getpages_done(struct buf *bp)
 
        runningbufwakeup(bp);
 
-       if (error == 0 && bp->b_bcount != bp->b_npages * PAGE_SIZE) {
+       if (error == 0 && bp->b_bcount != ptoa(bp->b_npages)) {
                if (!buf_mapped(bp)) {
                        bp->b_data = bp->b_kvabase;
                        pmap_qenter((vm_offset_t)bp->b_data, bp->b_pages,
                            bp->b_npages);
                }
                bzero(bp->b_data + bp->b_bcount,
-                   PAGE_SIZE * bp->b_npages - bp->b_bcount);
+                   ptoa(bp->b_npages) - bp->b_bcount);
        }
        if (buf_mapped(bp)) {
                pmap_qremove((vm_offset_t)bp->b_data, bp->b_npages);
@@ -1258,7 +1258,7 @@ vnode_pager_putpages(vm_object_t object, vm_page_t *m, 
int count,
 {
        int rtval __diagused;
        struct vnode *vp;
-       int bytes = count * PAGE_SIZE;
+       int bytes = ptoa(count);
 
        /*
         * Force synchronous operation if we are extremely low on memory
@@ -1329,7 +1329,7 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t 
*ma, int bytecount,
        static int curfail;
 
        object = vp->v_object;
-       count = bytecount / PAGE_SIZE;
+       count = atop(bytecount);
 
        for (i = 0; i < count; i++)
                rtvals[i] = VM_PAGER_ERROR;
@@ -1342,7 +1342,7 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t 
*ma, int bytecount,
                return (VM_PAGER_BAD);
        }
 
-       maxsize = count * PAGE_SIZE;
+       maxsize = ptoa(count);
        ncount = count;
 
        poffset = IDX_TO_OFF(ma[0]->pindex);

Reply via email to