bus dma fixes
jhb at freebsd.org
Mon Mar 26 15:13:39 UTC 2007
Can folks please try this patch (warning, not compile tested) to fix some
issues with bus_dma and hopefully fix ATA DMA on Alpha 6.x?
It fixes the bus_dma code so that bus_dmamap_load() uses
_bus_dmamap_load_buffer(). This results in some fixes as noted in PR 75317
where bus_dmamap_load() wasn't honoring the maximum segment size for example.
It also now bounces buffers that aren't properly aligned. It also now
supports bounce pages for mbufs and uio's. As a sledgehammer fix for ATA on
alpha, it limits the maximum segment size to 8k for ata(4) on alpha. Does
anyone have any more details on the PYXIS bug? For example, does it only
affect ata(4) or does it affect any DMA in the system? If the latter, I
would rather add a check into the bus dma code to trunc maxsegsize to 8k for
all tags on broken systems.
More information about the freebsd-alpha