On Wed, Dec 06, 2006 at 10:16:44AM -0800, Stephen Hemminger wrote:
I think it is really only an issue for drivers that turn on HIGH_DMA
and have limited mask values. The majority of drivers either only
handle 32 bit (!HIGH_DMA) or do full 64 bit mapping. I don't know
the details of how we manage IOMMU, but doesn't mapping always work
for those drivers.
It's up to an IOMMU (DMA-API) implementation to define what
constitutes a mapping error, e.g., Calgary and GART on x86-64 will
return bad_dma_address from the mapping functions when they run out of
entries in the IO space, which can happen regardless of the mask.
Cheers,
Muli