Re: [PATCH 2/2] arm64: avoid increasing DMA masks above what hardware supports

From: Nikita Yushchenko
Date: Thu Jan 12 2017 - 01:00:31 EST


>> @@ -959,6 +990,15 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
>> if (!dev->archdata.dma_ops)
>> dev->archdata.dma_ops = &swiotlb_dma_ops;
>>
>> + /*
>> + * Whatever the parent bus can set. A device must not set
>> + * a DMA mask larger than this.
>> + */
>> + if (enforce_range)
>> + dev->archdata.parent_dma_mask = size - 1;
>> + else
>> + dev->archdata.parent_dma_mask = DMA_BIT_MASK(64);
>> +
>> dev->archdata.dma_coherent = coherent;
>> __iommu_setup_dma_ops(dev, dma_base, size, iommu);
>>
>
> Could we just pass the mask instead of the size here?

We don't want to change API now.

Nikita