Index: gem.c =================================================================== RCS file: /cvs/src/sys/dev/ic/gem.c,v retrieving revision 1.121 diff -u -p -r1.121 gem.c --- gem.c 22 Jan 2017 10:17:38 -0000 1.121 +++ gem.c 9 May 2017 08:04:45 -0000 @@ -161,7 +161,8 @@ gem_config(struct gem_softc *sc) if ((error = bus_dmamap_create(sc->sc_dmatag, sizeof(struct gem_control_data), 1, - sizeof(struct gem_control_data), 0, 0, &sc->sc_cddmamap)) != 0) { + sizeof(struct gem_control_data), 0, BUS_DMA_64BIT, + &sc->sc_cddmamap)) != 0) { printf("\n%s: unable to create control data DMA map, " "error = %d\n", sc->sc_dev.dv_xname, error); goto fail_2; @@ -180,7 +181,8 @@ gem_config(struct gem_softc *sc) */ for (i = 0; i < GEM_NRXDESC; i++) { if ((error = bus_dmamap_create(sc->sc_dmatag, MCLBYTES, 1, - MCLBYTES, 0, 0, &sc->sc_rxsoft[i].rxs_dmamap)) != 0) { + MCLBYTES, 0, BUS_DMA_64BIT, + &sc->sc_rxsoft[i].rxs_dmamap)) != 0) { printf("\n%s: unable to create rx DMA map %d, " "error = %d\n", sc->sc_dev.dv_xname, i, error); goto fail_5; @@ -192,7 +194,7 @@ gem_config(struct gem_softc *sc) */ for (i = 0; i < GEM_NTXDESC; i++) { if ((error = bus_dmamap_create(sc->sc_dmatag, MCLBYTES, - GEM_NTXSEGS, MCLBYTES, 0, BUS_DMA_NOWAIT, + GEM_NTXSEGS, MCLBYTES, 0, BUS_DMA_NOWAIT | BUS_DMA_64BIT, &sc->sc_txd[i].sd_map)) != 0) { printf("\n%s: unable to create tx DMA map %d, " "error = %d\n", sc->sc_dev.dv_xname, i, error);