Index: mfi.c =================================================================== RCS file: /cvs/src/sys/dev/ic/mfi.c,v retrieving revision 1.158 diff -u -p -r1.158 mfi.c --- mfi.c 19 Dec 2014 07:23:57 -0000 1.158 +++ mfi.c 27 Feb 2015 11:30:33 -0000 @@ -1261,6 +1261,8 @@ mfi_default_sgd_load(struct mfi_softc *s bus_dma_segment_t *sgd = ccb->ccb_dmamap->dm_segs; int i; + hdr->mfh_flags |= sc->sc_sgl_flags; + for (i = 0; i < ccb->ccb_dmamap->dm_nsegs; i++) { if (sc->sc_64bit_dma) { sgl->sg64[i].addr = htole64(sgd[i].ds_addr); @@ -1316,7 +1318,6 @@ mfi_create_sgl(struct mfi_softc *sc, str ccb->ccb_dmamap->dm_mapsize, BUS_DMASYNC_PREWRITE); } - hdr->mfh_flags |= sc->sc_sgl_flags; hdr->mfh_sg_count = ccb->ccb_dmamap->dm_nsegs; ccb->ccb_extra_frames = (ccb->ccb_frame_size - 1) / MFI_FRAME_SIZE; @@ -2459,7 +2460,7 @@ mfi_skinny_sgd_load(struct mfi_softc *sc sgl->sg_skinny[i].len = htole32(sgd[i].ds_len); sgl->sg_skinny[i].flag = 0; } - hdr->mfh_flags |= MFI_FRAME_IEEE; + hdr->mfh_flags |= MFI_FRAME_IEEE | MFI_FRAME_SGL64; return (ccb->ccb_dmamap->dm_nsegs * sizeof(sgl->sg_skinny)); default: