diff options
-rw-r--r-- | drivers/iommu/amd_iommu.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index eb11996e310f..2962c62a8377 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -1561,11 +1561,10 @@ static unsigned long dma_ops_area_alloc(struct device *dev, struct dma_ops_domain *dom, unsigned int pages, unsigned long align_mask, - u64 dma_mask, - unsigned long start) + u64 dma_mask) { int max_index = dom->aperture_size >> APERTURE_RANGE_SHIFT; - int i = start >> APERTURE_RANGE_SHIFT; + int i = dom->next_address >> APERTURE_RANGE_SHIFT; unsigned long next_bit, boundary_size, mask; unsigned long address = -1; @@ -1612,13 +1611,12 @@ static unsigned long dma_ops_alloc_addresses(struct device *dev, dom->need_flush = true; #endif - address = dma_ops_area_alloc(dev, dom, pages, align_mask, - dma_mask, dom->next_address); + address = dma_ops_area_alloc(dev, dom, pages, align_mask, dma_mask); if (address == -1) { dom->next_address = 0; address = dma_ops_area_alloc(dev, dom, pages, align_mask, - dma_mask, 0); + dma_mask); dom->need_flush = true; } |