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 <bouyer%antioche.eu.org@localhost>
To: matthew green <mrg%eterna.com.au@localhost>
Cc: Julian Bourne <julian.bourne%gmail.com@localhost>, 
port-amd64-maintainer%NetBSD.org@localhost,
        gnats-admin%NetBSD.org@localhost, netbsd-bugs%NetBSD.org@localhost, 
gnats-bugs%NetBSD.org@localhost
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,
             BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW,
             &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 <bouyer%antioche.eu.org@localhost>
      NetBSD: 26 ans d'experience feront toujours la difference
 --
 


Home | Main Index | Thread Index | Old Index