From nobody Thu Apr 23 18:16:08 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g1kmm5mKYz6bFpZ for ; Thu, 23 Apr 2026 18:16:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g1kmm3F4gz3Qdr for ; Thu, 23 Apr 2026 18:16:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776968168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gMca1ZzLvLYN28dCGRFGHWbKDj4fgWcjp5fmxGJ6l0Y=; b=RDTOHpeR2ssIqbJ5AlZMUYkFp5dFVSfCC/UOR6LqWyVVr0tNkBtdszHPqCmrz+X+Kf0fqZ Nq544548yzXuW8wJ46DgPvBqt9sRVbJVvkR36W7wjEPtueszVmB5y8cLimfpcAA/jzSUUJ rHrAW+okKDEK53hBYHkWBd8HeOnsgycWG7X5PZbHYNyxEI6CrcXF2I7LiKxyiWjg8/OKNX +MafQv0rY1lHcMIHRfqfh4F/QzrNI/jAdK1xtEhJuhuxATvjaQCRKvQclHDimyS5lnV7do V7jbVpfMq4me1LlrVCZFg4gSj6jarb93bnrlainfIpEQk5PCiajfCsDooz37FQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776968168; a=rsa-sha256; cv=none; b=VE0o4dcfmvji6IJYuMYee/WGLuK0vGlvQkVkv3vbcbVZPZGFhxc+KYS2DpExD3v01KxY+D P4mjPhI13gecOTQE3jiYhy1/mB30Bo69SNbTM2Mk+Yp8JbZJvgS98Jt5XqmIq1ls2NlGCe 88SIdXe10p0KCW9buJFSbHkEcy1L3kIitNM3WJiwJzbCpTTzgdSzBKlYcMx/lBv/ggs+Cr Q4LgqPQvygEkmpCzlzVkvWeNnxmsb6Vf+oZlSXHEUlkFLf70edYcqRfmmZoZKZPsaznGSY kp5njjBP14mFgTRUlHNeBlSMcRuKmsMjZPL/ndk3Z46j/oli6U6C/GuYQq9/YA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776968168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gMca1ZzLvLYN28dCGRFGHWbKDj4fgWcjp5fmxGJ6l0Y=; b=bc6i02BKBUX5zTkDE5v8LD0gDsq7c/wxl/QsbBwdnHiNJmPTLG9hJR+mh8l3cT4AuOrQUQ ADO5bbcDQSqSWBL84HGG7ZQksTF5MzonFsw+eax6DJSwBbpXH0mLMGyV//2aHc0l0i8BRm mgDYJqnGVA28pJfyap5XsxxIRqcntd7C81N7MUbyWpa4vJmaH+ZDFztdH3X2bi2aAGyr9N qHxcj033TnkrZ+G7ZEX5+2i9QlOSJMS6iV58Y6muY+jv75PazybRfk4BjrnV/pmxeFoxVc eftlTU+Agt/UdMaifeFQzNAS411+HlpbH3p2LednMd6e7qxSlhCaSXMjZN6GAw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g1kmm2TzjzCf0 for ; Thu, 23 Apr 2026 18:16:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46e01 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 23 Apr 2026 18:16:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: fe9f0b18bf6a - main - busdma: Use char * instead of vm_offset_t for bounce page kernel pointers List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fe9f0b18bf6a1f881fbe57da716ea429acd539c1 Auto-Submitted: auto-generated Date: Thu, 23 Apr 2026 18:16:08 +0000 Message-Id: <69ea61e8.46e01.b303182@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=fe9f0b18bf6a1f881fbe57da716ea429acd539c1 commit fe9f0b18bf6a1f881fbe57da716ea429acd539c1 Author: John Baldwin AuthorDate: 2026-04-23 17:05:53 +0000 Commit: John Baldwin 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 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")); #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: