aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Roedel <jroedel@suse.de>2016-07-05 10:28:02 -0400
committerJoerg Roedel <jroedel@suse.de>2016-07-13 06:48:06 -0400
commitbda350dbdbc1ad8655ece0ec3d41bebc3ee7a77b (patch)
treea69947455eb51b53a4680edf8128fa08d3144e93
parent2d4c515bf06c9bce87b546279413621f847ef6a3 (diff)
iommu/amd: Remove align-parameter from __map_single()
This parameter is not required anymore because the iova-allocations are always aligned to its size. Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r--drivers/iommu/amd_iommu.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 2ba8b464ea1a..d218e35ed3e3 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -2162,22 +2162,17 @@ static dma_addr_t __map_single(struct device *dev,
2162 phys_addr_t paddr, 2162 phys_addr_t paddr,
2163 size_t size, 2163 size_t size,
2164 int direction, 2164 int direction,
2165 bool align,
2166 u64 dma_mask) 2165 u64 dma_mask)
2167{ 2166{
2168 dma_addr_t offset = paddr & ~PAGE_MASK; 2167 dma_addr_t offset = paddr & ~PAGE_MASK;
2169 dma_addr_t address, start, ret; 2168 dma_addr_t address, start, ret;
2170 unsigned int pages; 2169 unsigned int pages;
2171 unsigned long align_mask = 0;
2172 int prot = 0; 2170 int prot = 0;
2173 int i; 2171 int i;
2174 2172
2175 pages = iommu_num_pages(paddr, size, PAGE_SIZE); 2173 pages = iommu_num_pages(paddr, size, PAGE_SIZE);
2176 paddr &= PAGE_MASK; 2174 paddr &= PAGE_MASK;
2177 2175
2178 if (align)
2179 align_mask = (1UL << get_order(size)) - 1;
2180
2181 address = dma_ops_alloc_iova(dev, dma_dom, pages, dma_mask); 2176 address = dma_ops_alloc_iova(dev, dma_dom, pages, dma_mask);
2182 if (address == DMA_ERROR_CODE) 2177 if (address == DMA_ERROR_CODE)
2183 goto out; 2178 goto out;
@@ -2273,8 +2268,7 @@ static dma_addr_t map_page(struct device *dev, struct page *page,
2273 2268
2274 dma_mask = *dev->dma_mask; 2269 dma_mask = *dev->dma_mask;
2275 2270
2276 return __map_single(dev, domain->priv, paddr, size, dir, false, 2271 return __map_single(dev, domain->priv, paddr, size, dir, dma_mask);
2277 dma_mask);
2278} 2272}
2279 2273
2280/* 2274/*
@@ -2317,8 +2311,7 @@ static int map_sg(struct device *dev, struct scatterlist *sglist,
2317 paddr = sg_phys(s); 2311 paddr = sg_phys(s);
2318 2312
2319 s->dma_address = __map_single(dev, domain->priv, 2313 s->dma_address = __map_single(dev, domain->priv,
2320 paddr, s->length, dir, false, 2314 paddr, s->length, dir, dma_mask);
2321 dma_mask);
2322 2315
2323 if (s->dma_address) { 2316 if (s->dma_address) {
2324 s->dma_length = s->length; 2317 s->dma_length = s->length;
@@ -2402,7 +2395,7 @@ static void *alloc_coherent(struct device *dev, size_t size,
2402 dma_mask = *dev->dma_mask; 2395 dma_mask = *dev->dma_mask;
2403 2396
2404 *dma_addr = __map_single(dev, domain->priv, page_to_phys(page), 2397 *dma_addr = __map_single(dev, domain->priv, page_to_phys(page),
2405 size, DMA_BIDIRECTIONAL, true, dma_mask); 2398 size, DMA_BIDIRECTIONAL, dma_mask);
2406 2399
2407 if (*dma_addr == DMA_ERROR_CODE) 2400 if (*dma_addr == DMA_ERROR_CODE)
2408 goto out_free; 2401 goto out_free;