Re: git: fe9f0b18bf6a - main - busdma: Use char * instead of vm_offset_t for bounce page kernel pointers
- Reply: Jessica Clarke : "Re: git: fe9f0b18bf6a - main - busdma: Use char * instead of vm_offset_t for bounce page kernel pointers"
- In reply to: John Baldwin : "git: fe9f0b18bf6a - main - busdma: Use char * instead of vm_offset_t for bounce page kernel pointers"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 28 Apr 2026 18:43:25 UTC
On Thursday, April 23, 2026, John Baldwin <jhb@freebsd.org> wrote:
> The branch main has been updated by jhb:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=
> fe9f0b18bf6a1f881fbe57da716ea429acd539c1
>
> commit fe9f0b18bf6a1f881fbe57da716ea429acd539c1
> Author: John Baldwin <jhb@FreeBSD.org>
> AuthorDate: 2026-04-23 17:05:53 +0000
> Commit: John Baldwin <jhb@FreeBSD.org>
> CommitDate: 2026-04-23 17:05:53 +0000
>
> busdma: Use char * instead of vm_offset_t for bounce page kernel
> pointers
>
> Effort: CHERI upstreaming
> Reviewed by: kib
> Sponsored by: AFRL, DARPA
> Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
> ---
> sys/arm/arm/busdma_machdep.c | 18 ++++++++----------
> sys/arm64/arm64/busdma_bounce.c | 18 ++++++++----------
> sys/kern/subr_busdma_bounce.c | 30 +++++++++++++++---------------
> sys/powerpc/powerpc/busdma_machdep.c | 20 +++++++++-----------
> sys/riscv/riscv/busdma_bounce.c | 18 ++++++++----------
> sys/x86/x86/busdma_bounce.c | 26 +++++++++++---------------
> 6 files changed, 59 insertions(+), 71 deletions(-)
>
> diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
> index 3c65cb8ebbf4..81b8b4a2883a 100644
> --- a/sys/arm/arm/busdma_machdep.c
> +++ b/sys/arm/arm/busdma_machdep.c
> @@ -1002,7 +1002,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> bus_dmamap_t map, void *buf,
>
> if (map->pagesneeded != 0 && must_bounce(dmat, map,
> curaddr,
> sgsize)) {
> - curaddr = add_bounce_page(dmat, map,
> (vm_offset_t)kvaddr, curaddr,
> + curaddr = add_bounce_page(dmat, map, kvaddr,
> curaddr,
> sgsize);
> } else if ((dmat->flags & BUS_DMA_COHERENT) == 0) {
> if (map->sync_count > 0) {
> @@ -1199,18 +1199,17 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t
> map, bus_dmasync_op_t op)
> if (op & BUS_DMASYNC_PREWRITE) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
> - bcopy(datavaddr, (void *)bpage->vaddr,
> - bpage->datacount);
> + bcopy(datavaddr, bpage->vaddr,
> bpage->datacount);
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> if ((dmat->flags & BUS_DMA_COHERENT) == 0)
> - dcache_wb_poc(bpage->vaddr,
> + dcache_wb_poc((vm_offset_t)
> bpage->vaddr,
> bpage->busaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -1232,7 +1231,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t
> map, bus_dmasync_op_t op)
> bpage = STAILQ_FIRST(&map->bpages);
> while (bpage != NULL) {
> if ((dmat->flags & BUS_DMA_COHERENT) == 0)
> - dcache_inv_poc_dma(bpage->vaddr,
> + dcache_inv_poc_dma((vm_offset_
> t)bpage->vaddr,
> bpage->busaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -1250,17 +1249,16 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t
> map, bus_dmasync_op_t op)
> if (op & BUS_DMASYNC_POSTREAD) {
> while (bpage != NULL) {
> if ((dmat->flags & BUS_DMA_COHERENT) == 0)
> - dcache_inv_poc(bpage->vaddr,
> + dcache_inv_poc((vm_offset_t)
> bpage->vaddr,
> bpage->busaddr,
> bpage->datacount);
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
> - bcopy((void *)bpage->vaddr, datavaddr,
> - bpage->datacount);
> + bcopy(bpage->vaddr, datavaddr,
> bpage->datacount);
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> bpage = STAILQ_NEXT(bpage, links);
> diff --git a/sys/arm64/arm64/busdma_bounce.c b/sys/arm64/arm64/busdma_
> bounce.c
> index ad46e26e406f..74fa611e6d1a 100644
> --- a/sys/arm64/arm64/busdma_bounce.c
> +++ b/sys/arm64/arm64/busdma_bounce.c
> @@ -868,7 +868,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> bus_dmamap_t map, void *buf,
> KASSERT(dmat->common.alignment <= PAGE_SIZE,
> ("bounced buffer cannot have alignment bigger "
> "than PAGE_SIZE: %lu",
> dmat->common.alignment));
> - curaddr = add_bounce_page(dmat, map,
> (vm_offset_t)kvaddr, curaddr,
> + curaddr = add_bounce_page(dmat, map, kvaddr,
> curaddr,
> sgsize);
> } else if ((map->flags & DMAMAP_COHERENT) == 0) {
> if (map->sync_count > 0) {
> @@ -1047,19 +1047,18 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> if ((op & BUS_DMASYNC_PREWRITE) != 0) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
>
> - bcopy(datavaddr,
> - (void *)bpage->vaddr,
> bpage->datacount);
> + bcopy(datavaddr, bpage->vaddr,
> bpage->datacount);
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> if ((map->flags & DMAMAP_COHERENT) == 0)
> - cpu_dcache_wb_range((void
> *)bpage->vaddr,
> + cpu_dcache_wb_range(bpage->vaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -1067,7 +1066,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> } else if ((op & BUS_DMASYNC_PREREAD) != 0) {
> while (bpage != NULL) {
> if ((map->flags & DMAMAP_COHERENT) == 0)
> - cpu_dcache_wbinv_range((void
> *)bpage->vaddr,
> + cpu_dcache_wbinv_range(bpage->
> vaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -1076,18 +1075,17 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> if ((op & BUS_DMASYNC_POSTREAD) != 0) {
> while (bpage != NULL) {
> if ((map->flags & DMAMAP_COHERENT) == 0)
> - cpu_dcache_inv_range((void
> *)bpage->vaddr,
> + cpu_dcache_inv_range(bpage->vaddr,
> bpage->datacount);
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
>
> - bcopy((void *)bpage->vaddr,
> - datavaddr, bpage->datacount);
> + bcopy(bpage->vaddr, datavaddr,
> bpage->datacount);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> diff --git a/sys/kern/subr_busdma_bounce.c b/sys/kern/subr_busdma_bounce.c
> index 60fe2fc6b2a6..2774128a1ae5 100644
> --- a/sys/kern/subr_busdma_bounce.c
> +++ b/sys/kern/subr_busdma_bounce.c
> @@ -49,9 +49,9 @@
> #include <sys/sched.h>
>
> struct bounce_page {
> - vm_offset_t vaddr; /* kva of bounce buffer */
> + char *vaddr; /* kva of bounce buffer */
> bus_addr_t busaddr; /* Physical address */
> - vm_offset_t datavaddr; /* kva of client data */
> + char *datavaddr; /* kva of client data */
> #if defined(__amd64__) || defined(__i386__)
> vm_page_t datapage[2]; /* physical page(s) of client data
> */
> #else
> @@ -282,18 +282,18 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u_int
> numpages)
> if (bpage == NULL)
> break;
> #ifdef dmat_domain
> - bpage->vaddr = (vm_offset_t)contigmalloc_
> domainset(PAGE_SIZE,
> + bpage->vaddr = contigmalloc_domainset(PAGE_SIZE,
> M_BOUNCE, DOMAINSET_PREF(bz->domain), M_NOWAIT,
> 0ul, bz->lowaddr, PAGE_SIZE, 0);
> #else
> - bpage->vaddr = (vm_offset_t)contigmalloc(PAGE_SIZE,
> M_BOUNCE,
> + bpage->vaddr = contigmalloc(PAGE_SIZE, M_BOUNCE,
> M_NOWAIT, 0ul, bz->lowaddr, PAGE_SIZE, 0);
> #endif
> - if (bpage->vaddr == 0) {
> + if (bpage->vaddr == NULL) {
> free(bpage, M_BUSDMA);
> break;
> }
> - bpage->busaddr = pmap_kextract(bpage->vaddr);
> + bpage->busaddr = pmap_kextract((vm_offset_t)bpage->vaddr);
> mtx_lock(&bounce_lock);
> STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links);
> total_bpages++;
> @@ -327,11 +327,11 @@ reserve_bounce_pages(bus_dma_tag_t dmat,
> bus_dmamap_t map, int commit)
>
> #if defined(__amd64__) || defined(__i386__)
> static bus_addr_t
> -add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr,
> +add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, void *vaddr,
> vm_paddr_t addr1, vm_paddr_t addr2, bus_size_t size)
> #else
> static bus_addr_t
> -add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr,
> +add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, void *vaddr,
> bus_addr_t addr, bus_size_t size)
> #endif
> {
> @@ -370,13 +370,13 @@ add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t
> map, vm_offset_t vaddr,
> if (dmat_flags(dmat) & BUS_DMA_KEEP_PG_OFFSET) {
> /* Page offset needs to be preserved. */
> #if defined(__amd64__) || defined(__i386__)
> - bpage->vaddr |= addr1 & PAGE_MASK;
> - bpage->busaddr |= addr1 & PAGE_MASK;
> + bpage->vaddr += addr1 & PAGE_MASK;
> + bpage->busaddr += addr1 & PAGE_MASK;
> KASSERT(addr2 == 0,
> ("Trying to bounce multiple pages with
> BUS_DMA_KEEP_PG_OFFSET"));
These hunks looks different from the commit message.
> #else
> - bpage->vaddr |= addr & PAGE_MASK;
> - bpage->busaddr |= addr & PAGE_MASK;
> + bpage->vaddr += addr & PAGE_MASK;
> + bpage->busaddr += addr & PAGE_MASK;
> #endif
> }
> bpage->datavaddr = vaddr;
> @@ -409,7 +409,7 @@ free_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t
> map)
> count = 0;
> schedule_thread = false;
> STAILQ_FOREACH(bpage, &map->bpages, links) {
> - bpage->datavaddr = 0;
> + bpage->datavaddr = NULL;
> bpage->datacount = 0;
>
> if (dmat_flags(dmat) & BUS_DMA_KEEP_PG_OFFSET) {
> @@ -419,8 +419,8 @@ free_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t
> map)
> * store a full page of data and/or assume it
> * starts on a page boundary.
> */
> - bpage->vaddr &= ~PAGE_MASK;
> - bpage->busaddr &= ~PAGE_MASK;
> + bpage->vaddr = trunc_page(bpage->vaddr);
> + bpage->busaddr = trunc_page(bpage->busaddr);
> }
> count++;
> }
> diff --git a/sys/powerpc/powerpc/busdma_machdep.c
> b/sys/powerpc/powerpc/busdma_machdep.c
> index 56feffde8b37..7fe2fd4ff986 100644
> --- a/sys/powerpc/powerpc/busdma_machdep.c
> +++ b/sys/powerpc/powerpc/busdma_machdep.c
> @@ -613,7 +613,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> {
> bus_size_t sgsize;
> bus_addr_t curaddr;
> - vm_offset_t kvaddr, vaddr;
> + char *kvaddr, *vaddr;
> int error;
>
> if (segs == NULL)
> @@ -628,18 +628,18 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> }
> }
>
> - vaddr = (vm_offset_t)buf;
> + vaddr = buf;
>
> while (buflen > 0) {
> /*
> * Get the physical address for this segment.
> */
> if (pmap == kernel_pmap) {
> - curaddr = pmap_kextract(vaddr);
> + curaddr = pmap_kextract((vm_offset_t)vaddr);
> kvaddr = vaddr;
> } else {
> - curaddr = pmap_extract(pmap, vaddr);
> - kvaddr = 0;
> + curaddr = pmap_extract(pmap, (vm_offset_t)vaddr);
> + kvaddr = NULL;
> }
>
> /*
> @@ -733,7 +733,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
> bus_dmasync_op_t op)
> if (op & BUS_DMASYNC_PREWRITE) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> @@ -741,8 +741,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
> bus_dmasync_op_t op)
> bpage->dataoffs;
> }
>
> - bcopy(datavaddr,
> - (void *)bpage->vaddr,
> bpage->datacount);
> + bcopy(datavaddr, bpage->vaddr,
> bpage->datacount);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> @@ -754,7 +753,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
> bus_dmasync_op_t op)
> if (op & BUS_DMASYNC_POSTREAD) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> @@ -762,8 +761,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
> bus_dmasync_op_t op)
> bpage->dataoffs;
> }
>
> - bcopy((void *)bpage->vaddr,
> - datavaddr, bpage->datacount);
> + bcopy(bpage->vaddr, datavaddr,
> bpage->datacount);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> diff --git a/sys/riscv/riscv/busdma_bounce.c b/sys/riscv/riscv/busdma_
> bounce.c
> index 0f2d592f4e52..452cead3c6b6 100644
> --- a/sys/riscv/riscv/busdma_bounce.c
> +++ b/sys/riscv/riscv/busdma_bounce.c
> @@ -673,7 +673,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> bus_dmamap_t map, void *buf,
> addr_needs_bounce(dmat, curaddr)) {
> sgsize = roundup2(sgsize, dmat->common.alignment);
> sgsize = MIN(sgsize, buflen);
> - curaddr = add_bounce_page(dmat, map,
> (vm_offset_t)kvaddr, curaddr,
> + curaddr = add_bounce_page(dmat, map, kvaddr,
> curaddr,
> sgsize);
> } else if ((dmat->bounce_flags & BF_COHERENT) == 0) {
> if (map->sync_count > 0) {
> @@ -850,19 +850,18 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> if ((op & BUS_DMASYNC_PREWRITE) != 0) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
>
> - bcopy(datavaddr,
> - (void *)bpage->vaddr,
> bpage->datacount);
> + bcopy(datavaddr, bpage->vaddr,
> bpage->datacount);
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> if ((dmat->bounce_flags & BF_COHERENT) ==
> 0)
> - cpu_dcache_wb_range(bpage->vaddr,
> + cpu_dcache_wb_range((vm_
> offset_t)bpage->vaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -870,7 +869,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> } else if ((op & BUS_DMASYNC_PREREAD) != 0) {
> while (bpage != NULL) {
> if ((dmat->bounce_flags & BF_COHERENT) ==
> 0)
> - cpu_dcache_wbinv_range(bpage->
> vaddr,
> + cpu_dcache_wbinv_range((vm_
> offset_t)bpage->vaddr,
> bpage->datacount);
> bpage = STAILQ_NEXT(bpage, links);
> }
> @@ -879,18 +878,17 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> if ((op & BUS_DMASYNC_POSTREAD) != 0) {
> while (bpage != NULL) {
> if ((dmat->bounce_flags & BF_COHERENT) ==
> 0)
> - cpu_dcache_inv_range(bpage->vaddr,
> + cpu_dcache_inv_range((vm_
> offset_t)bpage->vaddr,
> bpage->datacount);
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> if (datavaddr == NULL) {
> tempvaddr = pmap_quick_enter_page(
> bpage->datapage);
> datavaddr = tempvaddr +
> bpage->dataoffs;
> }
>
> - bcopy((void *)bpage->vaddr,
> - datavaddr, bpage->datacount);
> + bcopy(bpage->vaddr, datavaddr,
> bpage->datacount);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> diff --git a/sys/x86/x86/busdma_bounce.c b/sys/x86/x86/busdma_bounce.c
> index bc48c60448da..bd700d4d55be 100644
> --- a/sys/x86/x86/busdma_bounce.c
> +++ b/sys/x86/x86/busdma_bounce.c
> @@ -687,7 +687,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> bus_dmamap_t map, void *buf,
> {
> bus_size_t sgsize;
> vm_paddr_t curaddr;
> - vm_offset_t kvaddr, vaddr;
> + char *kvaddr, *vaddr;
> int error;
>
> if (map == NULL)
> @@ -705,17 +705,17 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat,
> bus_dmamap_t map, void *buf,
> }
> }
>
> - vaddr = (vm_offset_t)buf;
> + vaddr = buf;
> while (buflen > 0) {
> /*
> * Get the physical address for this segment.
> */
> if (pmap == kernel_pmap) {
> - curaddr = pmap_kextract(vaddr);
> + curaddr = pmap_kextract((vm_offset_t)vaddr);
> kvaddr = vaddr;
> } else {
> - curaddr = pmap_extract(pmap, vaddr);
> - kvaddr = 0;
> + curaddr = pmap_extract(pmap, (vm_offset_t)vaddr);
> + kvaddr = NULL;
> }
>
> /*
> @@ -879,7 +879,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> if ((op & BUS_DMASYNC_PREWRITE) != 0) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> datacount1 = bpage->datacount;
> if (datavaddr == NULL) {
> tempvaddr =
> @@ -889,8 +889,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> datacount1);
> }
>
> - bcopy(datavaddr,
> - (void *)bpage->vaddr, datacount1);
> + bcopy(datavaddr, bpage->vaddr, datacount1);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> @@ -907,8 +906,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat,
> bus_dmamap_t map,
> */
> datavaddr = pmap_quick_enter_page(bpage->
> datapage[1]);
> datacount2 = bpage->datacount - datacount1;
> - bcopy(datavaddr,
> - (void *)(bpage->vaddr + datacount1),
> datacount2);
> + bcopy(datavaddr, bpage->vaddr + datacount1,
> datacount2);
> pmap_quick_remove_page(datavaddr);
>
> next_w:
> @@ -920,7 +918,7 @@ next_w:
> if ((op & BUS_DMASYNC_POSTREAD) != 0) {
> while (bpage != NULL) {
> tempvaddr = NULL;
> - datavaddr = (void *)bpage->datavaddr;
> + datavaddr = bpage->datavaddr;
> datacount1 = bpage->datacount;
> if (datavaddr == NULL) {
> tempvaddr =
> @@ -930,8 +928,7 @@ next_w:
> datacount1);
> }
>
> - bcopy((void *)bpage->vaddr, datavaddr,
> - datacount1);
> + bcopy(bpage->vaddr, datavaddr, datacount1);
>
> if (tempvaddr != NULL)
> pmap_quick_remove_page(tempvaddr);
> @@ -948,8 +945,7 @@ next_w:
> */
> datavaddr = pmap_quick_enter_page(bpage->
> datapage[1]);
> datacount2 = bpage->datacount - datacount1;
> - bcopy((void *)(bpage->vaddr + datacount1),
> - datavaddr, datacount2);
> + bcopy(bpage->vaddr + datacount1, datavaddr,
> datacount2);
> pmap_quick_remove_page(datavaddr);
>
> next_r:
>
>