From nobody Tue Apr 28 18:49:24 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 4g4qH010pDz6bwbY for ; Tue, 28 Apr 2026 18:49:32 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g4qGz08mpz3vqY for ; Tue, 28 Apr 2026 18:49:30 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of jrtc27@jrtc27.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=jrtc27@jrtc27.com Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-678adefbd26so7325207a12.3 for ; Tue, 28 Apr 2026 11:49:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777402168; x=1778006968; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ok6iwTgidYIdpa9D/T7y+Ze9JEDGeAKn0yrdcx9m0xk=; b=KqPUKaWySgobbFhVSW0Gvy40dHCYic4PT+PK6oe/0d8rZL5O36/dmfyF2VHDox82bg 87tWFJVxRS9N+6i0XrHtF170fxcbiOz0uRFw/A6no+JSclhmLUPYH2U0/IbboGt3waC0 3xg5FBus/avnGev+ERZfZEe2ASwrKmMIWCooXMV96zDZyCDRdxqtgN0CifsjbSoZfXvU IBqSgEmmQfqL8Nl0cfFwepC33wWudm4lhTGme76L8JO0Jve6OpcQIPLhlSCy3BZuYm1i nzGhiTlc0Fil7WMq2NZvLiIemZXouka50COF2mezLHhzdCKEjWQ/nExmBWnIY3/wdkSk k9Jw== X-Forwarded-Encrypted: i=1; AFNElJ8vdfK9jKEe2ZxkoVMnxF98geEUCWZVO0JkdCtlwiG2Aih/0SGEwiqTvAFCzz9sBDVac8S/XEzWwOix930A4owcRdAe@freebsd.org X-Gm-Message-State: AOJu0YwIj7mPMotVDmdOHkRt1ML0QmGKNmPg4pYa2/S6te2B7xygT7Ma HtrX7RIi2dTRjfhU0yokdvDrlq1x0G1zUQktGxDW5BGcogiZ4bu3Zm/g15b7ShBGnKI= X-Gm-Gg: AeBDiesTT1UDICkoQ4Rxbh0aW4Li8xDdP7uCsj33Vr8RTkuvBAFGedoE2oT+AIV0Wbe B3RFL8HW9KD9KhF+17VauXmCA4WbB8ZoG2RP1vn8/xHmzgudxNgyULa5euEqmL9tL3NMxp+KyVP urHl56ATitfsQvdKy6rCbK3L8Tr1vhnhXYRIf6VY9eMSQDVzk2V+9nM3s85fUUS7Qv8wyuU2/uC uOLilt5Qd8nnQMQvdt4W2lqXEV3NQ9IaYrs38ecZVa3jtLJTQnpuPitoOGknA9BddRCVfpJRGaE fwseTpZjJscBOG8S9StuzqsxsZ8d9vwLIrfAgbD1JTaFu3vTamMMGxKzXM+zdprID5aZL6VKZZc kyVNohxSxrnAT9pexq813VNuCTDjkslVPUu/gjjFN7+8gGAcVBpZumpzoq32ki/8lAukxlKz+vb MhF14HWZU3VqF9BMfxA3I0BBmlV6mrCBbauH/6tenFjYWnk04fJDP0znMNwiBGg3KTfbV4kOnm X-Received: by 2002:a17:907:8745:b0:ba7:cc67:488b with SMTP id a640c23a62f3a-bb8020ca223mr273045966b.5.1777402167475; Tue, 28 Apr 2026 11:49:27 -0700 (PDT) Received: from smtpclient.apple (nat-184-78.net.cam.ac.uk. [131.111.184.78]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bb80b2adb01sm133172866b.37.2026.04.28.11.49.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Apr 2026 11:49:26 -0700 (PDT) From: Jessica Clarke Message-Id: <9A89D171-0067-43C1-ABB3-E18A832FC6D5@freebsd.org> Content-Type: multipart/alternative; boundary="Apple-Mail=_232F96EC-6D5C-49A3-85AC-DE66E9BE46EC" 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 (Mac OS X Mail 16.0 \(3864.400.21\)) Subject: Re: git: fe9f0b18bf6a - main - busdma: Use char * instead of vm_offset_t for bounce page kernel pointers Date: Tue, 28 Apr 2026 19:49:24 +0100 In-Reply-To: Cc: John Baldwin , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" To: Oliver Pinter References: <69ea61e8.46e01.b303182@gitrepo.freebsd.org> X-Mailer: Apple Mail (2.3864.400.21) X-Spamd-Result: default: False [0.49 / 15.00]; URI_COUNT_ODD(1.00)[9]; NEURAL_SPAM_MEDIUM(1.00)[1.000]; NEURAL_HAM_LONG(-1.00)[-0.999]; NEURAL_HAM_SHORT(-0.61)[-0.610]; FORGED_SENDER(0.30)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_IN_DNSWL_NONE(0.00)[209.85.208.49:from]; TO_DN_EQ_ADDR_SOME(0.00)[]; FREEFALL_USER(0.00)[jrtc27]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-all@freebsd.org]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[jrtc27@freebsd.org,jrtc27@jrtc27.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.208.49:from]; R_DKIM_NA(0.00)[]; TAGGED_RCPT(0.00)[]; APPLE_MAILER_COMMON(0.00)[]; FROM_HAS_DN(0.00)[] X-Rspamd-Queue-Id: 4g4qGz08mpz3vqY X-Spamd-Bar: / --Apple-Mail=_232F96EC-6D5C-49A3-85AC-DE66E9BE46EC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Jessica > On 28 Apr 2026, at 19:43, Oliver Pinter wrote: >=20 >=20 >=20 > On Thursday, April 23, 2026, John Baldwin > wrote: >> The branch main has been updated by jhb: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3Dfe9f0b18bf6a1f881fbe57da716ea429= acd539c1 = >>=20 >> commit fe9f0b18bf6a1f881fbe57da716ea429acd539c1 >> Author: John Baldwin >> AuthorDate: 2026-04-23 17:05:53 +0000 >> Commit: John Baldwin >> CommitDate: 2026-04-23 17:05:53 +0000 >>=20 >> busdma: Use char * instead of vm_offset_t for bounce page kernel = pointers >>=20 >> 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(-) >>=20 >> 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, >>=20 >> if (map->pagesneeded !=3D 0 && must_bounce(dmat, map, = curaddr, >> sgsize)) { >> - curaddr =3D add_bounce_page(dmat, map, = (vm_offset_t)kvaddr, curaddr, >> + curaddr =3D add_bounce_page(dmat, map, = kvaddr, curaddr, >> sgsize); >> } else if ((dmat->flags & BUS_DMA_COHERENT) =3D=3D 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 !=3D NULL) { >> tempvaddr =3D NULL; >> - datavaddr =3D (void = *)bpage->datavaddr; >> + datavaddr =3D bpage->datavaddr; >> if (datavaddr =3D=3D NULL) { >> tempvaddr =3D = pmap_quick_enter_page( >> bpage->datapage); >> datavaddr =3D tempvaddr + = bpage->dataoffs; >> } >> - bcopy(datavaddr, (void = *)bpage->vaddr, >> - bpage->datacount); >> + bcopy(datavaddr, bpage->vaddr, = bpage->datacount); >> if (tempvaddr !=3D NULL) >> = pmap_quick_remove_page(tempvaddr); >> if ((dmat->flags & BUS_DMA_COHERENT) = =3D=3D 0) >> - dcache_wb_poc(bpage->vaddr, >> + = dcache_wb_poc((vm_offset_t)bpage->vaddr, >> bpage->busaddr, = bpage->datacount); >> bpage =3D 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 =3D STAILQ_FIRST(&map->bpages); >> while (bpage !=3D NULL) { >> if ((dmat->flags & BUS_DMA_COHERENT) = =3D=3D 0) >> - = dcache_inv_poc_dma(bpage->vaddr, >> + = dcache_inv_poc_dma((vm_offset_t)bpage->vaddr, >> bpage->busaddr, = bpage->datacount); >> bpage =3D 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 !=3D NULL) { >> if ((dmat->flags & BUS_DMA_COHERENT) = =3D=3D 0) >> - dcache_inv_poc(bpage->vaddr, >> + = dcache_inv_poc((vm_offset_t)bpage->vaddr, >> bpage->busaddr, = bpage->datacount); >> tempvaddr =3D NULL; >> - datavaddr =3D (void = *)bpage->datavaddr; >> + datavaddr =3D bpage->datavaddr; >> if (datavaddr =3D=3D NULL) { >> tempvaddr =3D = pmap_quick_enter_page( >> bpage->datapage); >> datavaddr =3D tempvaddr + = bpage->dataoffs; >> } >> - bcopy((void *)bpage->vaddr, = datavaddr, >> - bpage->datacount); >> + bcopy(bpage->vaddr, datavaddr, = bpage->datacount); >> if (tempvaddr !=3D NULL) >> = pmap_quick_remove_page(tempvaddr); >> bpage =3D 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 <=3D = PAGE_SIZE, >> ("bounced buffer cannot have alignment = bigger " >> "than PAGE_SIZE: %lu", = dmat->common.alignment)); >> - curaddr =3D add_bounce_page(dmat, map, = (vm_offset_t)kvaddr, curaddr, >> + curaddr =3D add_bounce_page(dmat, map, = kvaddr, curaddr, >> sgsize); >> } else if ((map->flags & DMAMAP_COHERENT) =3D=3D 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) !=3D 0) { >> while (bpage !=3D NULL) { >> tempvaddr =3D NULL; >> - datavaddr =3D (void = *)bpage->datavaddr; >> + datavaddr =3D bpage->datavaddr; >> if (datavaddr =3D=3D NULL) { >> tempvaddr =3D = pmap_quick_enter_page( >> bpage->datapage); >> datavaddr =3D tempvaddr + = bpage->dataoffs; >> } >>=20 >> - bcopy(datavaddr, >> - (void *)bpage->vaddr, = bpage->datacount); >> + bcopy(datavaddr, bpage->vaddr, = bpage->datacount); >> if (tempvaddr !=3D NULL) >> = pmap_quick_remove_page(tempvaddr); >> if ((map->flags & DMAMAP_COHERENT) =3D=3D= 0) >> - cpu_dcache_wb_range((void = *)bpage->vaddr, >> + = cpu_dcache_wb_range(bpage->vaddr, >> bpage->datacount); >> bpage =3D 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) !=3D 0) { >> while (bpage !=3D NULL) { >> if ((map->flags & DMAMAP_COHERENT) =3D=3D= 0) >> - cpu_dcache_wbinv_range((void = *)bpage->vaddr, >> + = cpu_dcache_wbinv_range(bpage->vaddr, >> bpage->datacount); >> bpage =3D 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) !=3D 0) { >> while (bpage !=3D NULL) { >> if ((map->flags & DMAMAP_COHERENT) =3D=3D= 0) >> - cpu_dcache_inv_range((void = *)bpage->vaddr, >> + = cpu_dcache_inv_range(bpage->vaddr, >> bpage->datacount); >> tempvaddr =3D NULL; >> - datavaddr =3D (void = *)bpage->datavaddr; >> + datavaddr =3D bpage->datavaddr; >> if (datavaddr =3D=3D NULL) { >> tempvaddr =3D = pmap_quick_enter_page( >> bpage->datapage); >> datavaddr =3D tempvaddr + = bpage->dataoffs; >> } >>=20 >> - bcopy((void *)bpage->vaddr, >> - datavaddr, bpage->datacount); >> + bcopy(bpage->vaddr, datavaddr, = bpage->datacount); >>=20 >> if (tempvaddr !=3D 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 >>=20 >> 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 =3D=3D NULL) >> break; >> #ifdef dmat_domain >> - bpage->vaddr =3D = (vm_offset_t)contigmalloc_domainset(PAGE_SIZE, >> + bpage->vaddr =3D contigmalloc_domainset(PAGE_SIZE, >> M_BOUNCE, DOMAINSET_PREF(bz->domain), M_NOWAIT, >> 0ul, bz->lowaddr, PAGE_SIZE, 0); >> #else >> - bpage->vaddr =3D (vm_offset_t)contigmalloc(PAGE_SIZE, = M_BOUNCE, >> + bpage->vaddr =3D contigmalloc(PAGE_SIZE, M_BOUNCE, >> M_NOWAIT, 0ul, bz->lowaddr, PAGE_SIZE, 0); >> #endif >> - if (bpage->vaddr =3D=3D 0) { >> + if (bpage->vaddr =3D=3D NULL) { >> free(bpage, M_BUSDMA); >> break; >> } >> - bpage->busaddr =3D pmap_kextract(bpage->vaddr); >> + bpage->busaddr =3D = 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) >>=20 >> #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 |=3D addr1 & PAGE_MASK; >> - bpage->busaddr |=3D addr1 & PAGE_MASK; >> + bpage->vaddr +=3D addr1 & PAGE_MASK; >> + bpage->busaddr +=3D addr1 & PAGE_MASK; >> KASSERT(addr2 =3D=3D 0, >> ("Trying to bounce multiple pages with = BUS_DMA_KEEP_PG_OFFSET")); >=20 > These hunks looks different from the commit message. |=3D isn=E2=80=99t defined for pointers, but +=3D is, and they=E2=80=99re = equivalent since the LHS is page aligned and the RHS is a page offset. Jessica --Apple-Mail=_232F96EC-6D5C-49A3-85AC-DE66E9BE46EC Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

Jessica

On 28 Apr 2026, at 19:43, Oliver = Pinter <oliver.pntr@gmail.com> wrote:



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=3Dfe9f= 0b18bf6a1f881fbe57da716ea429acd539c1

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_ma= chdep.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 !=3D 0 && must_bounce(dmat, map, = curaddr,
                =     sgsize)) = {
-                  =      curaddr =3D add_bounce_page(dmat, map, = (vm_offset_t)kvaddr, curaddr,
+          =              curaddr =3D = add_bounce_page(dmat, map, kvaddr, curaddr,
      =                     =   sgsize);
    =             } else if ((dmat->flags = & BUS_DMA_COHERENT) =3D=3D 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 !=3D NULL) = {
                  =               tempvaddr =3D = NULL;
-                  =              datavaddr =3D (void = *)bpage->datavaddr;
+            =                   =  datavaddr =3D bpage->datavaddr;
        =                     =     if = (datavaddr =3D=3D NULL) {
            =                     =         tempvaddr =3D = pmap_quick_enter_page(
            =                     =             bpage->datapage);
 = ;                     =                   datavaddr =3D tempvaddr + = bpage->dataoffs;
              =                   }
-      =                     =      bcopy(datavaddr, (void *)bpage->vaddr,
-  =                     =             =  bpage->datacount);
+          =                     =  bcopy(datavaddr, bpage->vaddr, bpage->datacount);
  =                     =           if (tempvaddr !=3D = NULL)
                  =                     =   pmap_quick_remove_page(t= empvaddr);
                =                 if ((dmat->flags & = BUS_DMA_COHERENT) =3D=3D 0)
-          =                     =         =  dcache_wb_poc(bpage->vaddr,
+        =                     =           =  dcache_wb_poc((vm_offset_t)bpage->vaddr,
    =                     =                   =   bpage->busaddr, = bpage->datacount);
            =                   =   bpage =3D = 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 =3D = STAILQ_FIRST(&map->bpages);
          =               while (bpage !=3D NULL) = {
                  =               if ((dmat->flags & = BUS_DMA_COHERENT) =3D=3D 0)
-          =                     =         =  dcache_inv_poc_dma(bpage->vaddr,
+      =                     =             =  dcache_inv_poc_dma((vm_offset_t)bpage->vaddr,
  =                     =                     =   bpage->busaddr, = bpage->datacount);
            =                   =   bpage =3D = 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 !=3D NULL) = {
                  =               if ((dmat->flags & = BUS_DMA_COHERENT) =3D=3D 0)
-          =                     =         =  dcache_inv_poc(bpage->vaddr,
+        =                     =           =  dcache_inv_poc((vm_offset_t)bpage->vaddr,
    =                     =                   =   bpage->busaddr, = bpage->datacount);
            =                   =   tempvaddr =3D = NULL;
-                  =              datavaddr =3D (void = *)bpage->datavaddr;
+            =                   =  datavaddr =3D bpage->datavaddr;
        =                     =     if = (datavaddr =3D=3D NULL) {
            =                     =         tempvaddr =3D = pmap_quick_enter_page(
            =                     =             bpage->datapage);
 = ;                     =                   datavaddr =3D tempvaddr + = bpage->dataoffs;
              =                   }
-      =                     =      bcopy((void *)bpage->vaddr, datavaddr,
-  =                     =             =  bpage->datacount);
+          =                     =  bcopy(bpage->vaddr, datavaddr, bpage->datacount);
  =                     =           if (tempvaddr !=3D = NULL)
                  =                     =   pmap_quick_remove_page(t= empvaddr);
                =                 bpage =3D = 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.align= ment <=3D PAGE_SIZE,
            =                 ("bounced buffer cannot = have alignment bigger "
            =                 "than PAGE_SIZE: %lu", = dmat->common.alignment));
-          =              curaddr =3D = add_bounce_page(dmat, map, (vm_offset_t)kvaddr, curaddr,
+  =                     =  curaddr =3D add_bounce_page(dmat, map, kvaddr, curaddr,
  =                     =       sgsize);
    =             } else if ((map->flags = & DMAMAP_COHERENT) =3D=3D 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) !=3D 0) {
          =               while (bpage !=3D NULL) = {
                  =               tempvaddr =3D = NULL;
-                  =              datavaddr =3D (void = *)bpage->datavaddr;
+            =                   =  datavaddr =3D bpage->datavaddr;
        =                     =     if = (datavaddr =3D=3D NULL) {
            =                     =         tempvaddr =3D = pmap_quick_enter_page(
            =                     =             bpage->datapage);
 = ;                     =                   datavaddr =3D tempvaddr + = bpage->dataoffs;
              =                   }

-    =                     =        bcopy(datavaddr,
-      =                     =          (void *)bpage->vaddr, = bpage->datacount);
+            =                   =  bcopy(datavaddr, bpage->vaddr, bpage->datacount);
  =                     =           if (tempvaddr !=3D = NULL)
                  =                     =   pmap_quick_remove_page(t= empvaddr);
                =                 if ((map->flags & = DMAMAP_COHERENT) =3D=3D 0)
-            =                     =        cpu_dcache_wb_range((void = *)bpage->vaddr,
+              =                     =      cpu_dcache_wb_range(bpage->vaddr,
  =                     =                     =   bpage->datacount);
&nbs= p;                     =           bpage =3D = 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) !=3D 0) {
          =               while (bpage !=3D NULL) = {
                  =               if ((map->flags & = DMAMAP_COHERENT) =3D=3D 0)
-            =                     =        cpu_dcache_wbinv_range((void = *)bpage->vaddr,
+              =                     =     =  cpu_dcache_wbinv_range(bpage->vaddr,
    =                     =                   =   bpage->datacount);
&nbs= p;                     =           bpage =3D = 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) !=3D 0) {
          =               while (bpage !=3D NULL) = {
                  =               if ((map->flags & = DMAMAP_COHERENT) =3D=3D 0)
-            =                     =        cpu_dcache_inv_range((void = *)bpage->vaddr,
+              =                     =      cpu_dcache_inv_range(bpage->vaddr,
  =                     =                     =   bpage->datacount);
&nbs= p;                     =           tempvaddr =3D = NULL;
-                  =              datavaddr =3D (void = *)bpage->datavaddr;
+            =                   =  datavaddr =3D bpage->datavaddr;
        =                     =     if = (datavaddr =3D=3D NULL) {
            =                     =         tempvaddr =3D = pmap_quick_enter_page(
            =                     =             bpage->datapage);
 = ;                     =                   datavaddr =3D tempvaddr + = bpage->dataoffs;
              =                   }

-    =                     =        bcopy((void *)bpage->vaddr,
-  =                     =              datavaddr, = bpage->datacount);
+            =                   =  bcopy(bpage->vaddr, datavaddr, = bpage->datacount);

            =                   =   if (tempvaddr = !=3D NULL)
                =                     =     pmap_quick_remove_page(t= empvaddr);
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 =3D=3D = NULL)
                  =       break;
 #ifdef = dmat_domain
-              =  bpage->vaddr =3D = (vm_offset_t)contigmalloc_domainset(PAGE_SIZE,
+    =            bpage->vaddr =3D = contigmalloc_domainset(PAGE_SIZE,
        =             M_BOUNCE, = DOMAINSET_PREF(bz->domain), M_NOWAIT,
        =             0ul, bz->lowaddr, = PAGE_SIZE, 0);
 #else
-          =      bpage->vaddr =3D = (vm_offset_t)contigmalloc(PAGE_SIZE, M_BOUNCE,
+    =            bpage->vaddr =3D = contigmalloc(PAGE_SIZE, M_BOUNCE,
          =           M_NOWAIT, 0ul, = bz->lowaddr, PAGE_SIZE, 0);
 #endif
-      =          if (bpage->vaddr =3D=3D 0) = {
+               if = (bpage->vaddr =3D=3D NULL) {
          =               free(bpage, = M_BUSDMA);
                =         break;
    =             }
-      =          bpage->busaddr =3D = pmap_kextract(bpage->vaddr);
+          =      bpage->busaddr =3D = pmap_kextract((vm_offset_t)bpage->vaddr);
    =             mtx_lock(&bounce_lock);                STAILQ_INSERT_TAIL(&bz-&g= t;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 |=3D addr1 & PAGE_MASK;
-    =            bpage->busaddr |=3D addr1 = & PAGE_MASK;
+              =  bpage->vaddr +=3D addr1 & PAGE_MASK;
+    =            bpage->busaddr +=3D addr1 = & PAGE_MASK;
              =   KASSERT(addr2 = =3D=3D 0,
            ("Trying to bounce multiple = pages with BUS_DMA_KEEP_PG_OFFSET"));



= = --Apple-Mail=_232F96EC-6D5C-49A3-85AC-DE66E9BE46EC--