Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: ixl 64 bit dma
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Wed, 25 Feb 2026 20:00:10 -0500

Download raw body.

Thread
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;