From: Brad Smith Subject: Re: ixl 64 bit dma To: Alexander Bluhm Cc: tech@openbsd.org Date: Wed, 25 Feb 2026 20:00:10 -0500 On Wed, Feb 25, 2026 at 11:12:55PM +0100, Alexander Bluhm wrote: > Hi, > > In ixl(4) only a single bus_dmamem_alloc() is missing BUS_DMA_64BIT. > > ok? > > bluhm > > Index: dev/pci/if_ixl.c > =================================================================== > RCS file: /data/mirror/openbsd/cvs/src/sys/dev/pci/if_ixl.c,v > diff -u -p -r1.115 if_ixl.c > --- dev/pci/if_ixl.c 19 Feb 2026 10:15:36 -0000 1.115 > +++ dev/pci/if_ixl.c 25 Feb 2026 22:11:04 -0000 > @@ -5183,7 +5183,7 @@ ixl_dmamem_alloc(struct ixl_softc *sc, s > return (1); > if (bus_dmamem_alloc(sc->sc_dmat, ixm->ixm_size, > align, 0, &ixm->ixm_seg, 1, &ixm->ixm_nsegs, > - BUS_DMA_WAITOK | BUS_DMA_ZERO) != 0) > + BUS_DMA_WAITOK | BUS_DMA_ZERO | BUS_DMA_64BIT) != 0) > goto destroy; > if (bus_dmamem_map(sc->sc_dmat, &ixm->ixm_seg, ixm->ixm_nsegs, > ixm->ixm_size, &ixm->ixm_kva, BUS_DMA_WAITOK) != 0) Same with aq(4), iavf(4) and myx(4). Index: if_aq_pci.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_aq_pci.c,v retrieving revision 1.34 diff -u -p -u -p -U7 -r1.34 if_aq_pci.c --- if_aq_pci.c 15 Jan 2026 06:41:21 -0000 1.34 +++ if_aq_pci.c 25 Feb 2026 22:40:05 -0000 @@ -4039,15 +4039,15 @@ aq_dmamem_alloc(struct aq_softc *sc, str if (bus_dmamap_create(sc->sc_dmat, aqm->aqm_size, 1, aqm->aqm_size, 0, BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW | BUS_DMA_64BIT, &aqm->aqm_map) != 0) return (1); if (bus_dmamem_alloc(sc->sc_dmat, aqm->aqm_size, align, 0, &aqm->aqm_seg, 1, &aqm->aqm_nsegs, - BUS_DMA_WAITOK | BUS_DMA_ZERO) != 0) + BUS_DMA_WAITOK | BUS_DMA_ZERO | BUS_DMA_64BIT) != 0) goto destroy; if (bus_dmamem_map(sc->sc_dmat, &aqm->aqm_seg, aqm->aqm_nsegs, aqm->aqm_size, &aqm->aqm_kva, BUS_DMA_WAITOK | BUS_DMA_COHERENT) != 0) goto free; if (bus_dmamap_load(sc->sc_dmat, aqm->aqm_map, aqm->aqm_kva, aqm->aqm_size, NULL, BUS_DMA_WAITOK) != 0) Index: if_iavf.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_iavf.c,v retrieving revision 1.27 diff -u -p -u -p -U7 -r1.27 if_iavf.c --- if_iavf.c 20 Nov 2025 01:48:52 -0000 1.27 +++ if_iavf.c 25 Feb 2026 22:40:05 -0000 @@ -3149,15 +3149,15 @@ iavf_dmamem_alloc(struct iavf_softc *sc, if (bus_dmamap_create(sc->sc_dmat, ixm->ixm_size, 1, ixm->ixm_size, 0, BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW | BUS_DMA_64BIT, &ixm->ixm_map) != 0) return (1); if (bus_dmamem_alloc(sc->sc_dmat, ixm->ixm_size, align, 0, &ixm->ixm_seg, 1, &ixm->ixm_nsegs, - BUS_DMA_WAITOK | BUS_DMA_ZERO) != 0) + BUS_DMA_WAITOK | BUS_DMA_ZERO | BUS_DMA_64BIT) != 0) goto destroy; if (bus_dmamem_map(sc->sc_dmat, &ixm->ixm_seg, ixm->ixm_nsegs, ixm->ixm_size, &ixm->ixm_kva, BUS_DMA_WAITOK) != 0) goto free; if (bus_dmamap_load(sc->sc_dmat, ixm->ixm_map, ixm->ixm_kva, ixm->ixm_size, NULL, BUS_DMA_WAITOK) != 0) goto unmap; Index: if_myx.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_myx.c,v retrieving revision 1.121 diff -u -p -u -p -U7 -r1.121 if_myx.c --- if_myx.c 3 Jun 2025 00:20:31 -0000 1.121 +++ if_myx.c 25 Feb 2026 22:40:05 -0000 @@ -657,15 +657,15 @@ myx_dmamem_alloc(struct myx_softc *sc, s if (bus_dmamap_create(sc->sc_dmat, mxm->mxm_size, 1, mxm->mxm_size, 0, BUS_DMA_WAITOK | BUS_DMA_ALLOCNOW | BUS_DMA_64BIT, &mxm->mxm_map) != 0) return (1); if (bus_dmamem_alloc(sc->sc_dmat, mxm->mxm_size, align, 0, &mxm->mxm_seg, 1, &mxm->mxm_nsegs, - BUS_DMA_WAITOK | BUS_DMA_ZERO) != 0) + BUS_DMA_WAITOK | BUS_DMA_ZERO | BUS_DMA_64BIT) != 0) goto destroy; if (bus_dmamem_map(sc->sc_dmat, &mxm->mxm_seg, mxm->mxm_nsegs, mxm->mxm_size, &mxm->mxm_kva, BUS_DMA_WAITOK) != 0) goto free; if (bus_dmamap_load(sc->sc_dmat, mxm->mxm_map, mxm->mxm_kva, mxm->mxm_size, NULL, BUS_DMA_WAITOK) != 0) goto unmap;