Author: marius Date: Sat Mar 26 13:07:07 2011 New Revision: 220036 URL: http://svn.freebsd.org/changeset/base/220036
Log: MFC: r219577 Allocate the DMA memory shared between the host and the controller as coherent. Approved by: gibbs Modified: stable/8/sys/dev/aic7xxx/aic79xx.c stable/8/sys/dev/aic7xxx/aic7xxx.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/aic7xxx/aic79xx.c ============================================================================== --- stable/8/sys/dev/aic7xxx/aic79xx.c Sat Mar 26 13:06:43 2011 (r220035) +++ stable/8/sys/dev/aic7xxx/aic79xx.c Sat Mar 26 13:07:07 2011 (r220036) @@ -6099,7 +6099,8 @@ ahd_alloc_scbs(struct ahd_softc *ahd) /* Allocate the next batch of hardware SCBs */ if (aic_dmamem_alloc(ahd, scb_data->hscb_dmat, (void **)&hscb_map->vaddr, - BUS_DMA_NOWAIT, &hscb_map->dmamap) != 0) { + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &hscb_map->dmamap) != 0) { free(hscb_map, M_DEVBUF); return (0); } @@ -6132,7 +6133,8 @@ ahd_alloc_scbs(struct ahd_softc *ahd) /* Allocate the next batch of S/G lists */ if (aic_dmamem_alloc(ahd, scb_data->sg_dmat, (void **)&sg_map->vaddr, - BUS_DMA_NOWAIT, &sg_map->dmamap) != 0) { + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &sg_map->dmamap) != 0) { free(sg_map, M_DEVBUF); return (0); } @@ -6397,7 +6399,7 @@ ahd_init(struct ahd_softc *ahd) /* Allocation of driver data */ if (aic_dmamem_alloc(ahd, ahd->shared_data_dmat, (void **)&ahd->shared_data_map.vaddr, - BUS_DMA_NOWAIT, + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &ahd->shared_data_map.dmamap) != 0) { return (ENOMEM); } Modified: stable/8/sys/dev/aic7xxx/aic7xxx.c ============================================================================== --- stable/8/sys/dev/aic7xxx/aic7xxx.c Sat Mar 26 13:06:43 2011 (r220035) +++ stable/8/sys/dev/aic7xxx/aic7xxx.c Sat Mar 26 13:07:07 2011 (r220036) @@ -4381,7 +4381,8 @@ ahc_init_scbdata(struct ahc_softc *ahc) /* Allocation for our hscbs */ if (aic_dmamem_alloc(ahc, scb_data->hscb_dmat, (void **)&scb_data->hscbs, - BUS_DMA_NOWAIT, &scb_data->hscb_dmamap) != 0) { + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &scb_data->hscb_dmamap) != 0) { goto error_exit; } @@ -4549,7 +4550,8 @@ ahc_alloc_scbs(struct ahc_softc *ahc) /* Allocate S/G space for the next batch of SCBS */ if (aic_dmamem_alloc(ahc, scb_data->sg_dmat, (void **)&sg_map->sg_vaddr, - BUS_DMA_NOWAIT, &sg_map->sg_dmamap) != 0) { + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &sg_map->sg_dmamap) != 0) { free(sg_map, M_DEVBUF); return (0); } @@ -4941,7 +4943,8 @@ ahc_init(struct ahc_softc *ahc) /* Allocation of driver data */ if (aic_dmamem_alloc(ahc, ahc->shared_data_dmat, (void **)&ahc->qoutfifo, - BUS_DMA_NOWAIT, &ahc->shared_data_dmamap) != 0) { + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + &ahc->shared_data_dmamap) != 0) { return (ENOMEM); } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"