diff options
author | dg <dg@FreeBSD.org> | 1996-06-20 08:07:30 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1996-06-20 08:07:30 +0000 |
commit | 10c0c08c642e7da26e332b742f3a9ea35cd79495 (patch) | |
tree | 84cd36f579a2b6134e9bd94adbfa5f7563b9ad20 | |
parent | ecc3ffe7bb1bf3ff3209c3b1f35b9f3afb7f39a0 (diff) | |
download | FreeBSD-src-10c0c08c642e7da26e332b742f3a9ea35cd79495.zip FreeBSD-src-10c0c08c642e7da26e332b742f3a9ea35cd79495.tar.gz |
Properly account for non-page aligned buffers.
-rw-r--r-- | sys/amd64/amd64/vm_machdep.c | 7 | ||||
-rw-r--r-- | sys/i386/i386/vm_machdep.c | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index 008f205..fef61cd 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.64 1996/06/19 03:39:24 dyson Exp $ + * $Id: vm_machdep.c,v 1.65 1996/06/20 01:47:21 davidg Exp $ */ #include "npx.h" @@ -691,7 +691,7 @@ vmapbuf(bp) if ((bp->b_flags & B_PHYS) == 0) panic("vmapbuf"); - for (v = bp->b_saveaddr, addr = bp->b_data; + for (v = bp->b_saveaddr, addr = (caddr_t)trunc_page(bp->b_data); addr < bp->b_data + bp->b_bufsize; addr += PAGE_SIZE, v += PAGE_SIZE) { /* @@ -726,7 +726,8 @@ vunmapbuf(bp) if ((bp->b_flags & B_PHYS) == 0) panic("vunmapbuf"); - for (addr = bp->b_data; addr < bp->b_data + bp->b_bufsize; + for (addr = (caddr_t)trunc_page(bp->b_data); + addr < bp->b_data + bp->b_bufsize; addr += PAGE_SIZE) { pa = trunc_page(pmap_kextract((vm_offset_t) addr)); pmap_kremove((vm_offset_t) addr); diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 008f205..fef61cd 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.64 1996/06/19 03:39:24 dyson Exp $ + * $Id: vm_machdep.c,v 1.65 1996/06/20 01:47:21 davidg Exp $ */ #include "npx.h" @@ -691,7 +691,7 @@ vmapbuf(bp) if ((bp->b_flags & B_PHYS) == 0) panic("vmapbuf"); - for (v = bp->b_saveaddr, addr = bp->b_data; + for (v = bp->b_saveaddr, addr = (caddr_t)trunc_page(bp->b_data); addr < bp->b_data + bp->b_bufsize; addr += PAGE_SIZE, v += PAGE_SIZE) { /* @@ -726,7 +726,8 @@ vunmapbuf(bp) if ((bp->b_flags & B_PHYS) == 0) panic("vunmapbuf"); - for (addr = bp->b_data; addr < bp->b_data + bp->b_bufsize; + for (addr = (caddr_t)trunc_page(bp->b_data); + addr < bp->b_data + bp->b_bufsize; addr += PAGE_SIZE) { pa = trunc_page(pmap_kextract((vm_offset_t) addr)); pmap_kremove((vm_offset_t) addr); |