NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/42980: satalink DMA fails under amd64

The following reply was made to PR port-amd64/42980; it has been noted by GNATS.

From: Manuel Bouyer <>
To: matthew green <>
Cc: Julian Bourne <>,,,,
Subject: Re: port-amd64/42980: satalink DMA fails under amd64
Date: Thu, 18 Mar 2010 17:38:07 +0100

 On Thu, Mar 18, 2010 at 12:45:36PM +1100, matthew green wrote:
 > you're right.
 > i guess the bus_dmamap_create() call needs to use this in place
 > of the IDEDMA_TBL_ALIGN argument?
 >      min(dma_table_size, IDEDMA_TBL_ALIGN);
 Now I'm confused. Why would this change anything (especially as AFAIK
 dma_table_size can't be larger than IDEDMA_TBL_ALIGN) ?
 Also, from what I understood, the problem comes from this call:
         if ((error = bus_dmamap_create(sc->sc_dmat, MAXPHYS,
             NIDEDMA_TABLES(sc), sc->sc_dma_maxsegsz, sc->sc_dma_boundary,
             &dma_maps->dmamap_xfer)) != 0) {
 not from the one a few lines above, which uses IDEDMA_TBL_ALIGN.
 I think this bus_dmamap_create() call is correct. The man page doesn't
 prevent a boundary smaller than the total size (a boundary smaller than the
 max segment size doesn't make sense, of course).
 Manuel Bouyer <>
      NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index