mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-29 21:26:51 +00:00
Properly account for non-page aligned buffers.
This commit is contained in:
parent
ac269d78be
commit
1293685583
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=16532
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue