Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
myx 64-bit dma
To:
tech@openbsd.org
Date:
Thu, 26 Mar 2026 13:46:38 -0400

Download raw body.

Thread
  • Brad Smith:

    myx 64-bit dma

With myx(4) the BUS_DMA_64BIT flag is missing from bus_dmamem_alloc().

Tested with

myx0 at pci19 dev 0 function 0 "Myricom Z8E" rev 0x01: msi, model 10G-PCIE2-8BL2-2S, address 00:60:dd:45:ba:f8


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;