diff options
| -rw-r--r-- | arch/x86/kernel/amd_iommu.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index c25210e6ac88..79eff735fde6 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
| @@ -29,9 +29,6 @@ | |||
| 29 | 29 | ||
| 30 | #define CMD_SET_TYPE(cmd, t) ((cmd)->data[1] |= ((t) << 28)) | 30 | #define CMD_SET_TYPE(cmd, t) ((cmd)->data[1] |= ((t) << 28)) |
| 31 | 31 | ||
| 32 | #define to_pages(addr, size) \ | ||
| 33 | (round_up(((addr) & ~PAGE_MASK) + (size), PAGE_SIZE) >> PAGE_SHIFT) | ||
| 34 | |||
| 35 | #define EXIT_LOOP_COUNT 10000000 | 32 | #define EXIT_LOOP_COUNT 10000000 |
| 36 | 33 | ||
| 37 | static DEFINE_RWLOCK(amd_iommu_devtable_lock); | 34 | static DEFINE_RWLOCK(amd_iommu_devtable_lock); |
| @@ -185,7 +182,7 @@ static int iommu_flush_pages(struct amd_iommu *iommu, u16 domid, | |||
| 185 | u64 address, size_t size) | 182 | u64 address, size_t size) |
| 186 | { | 183 | { |
| 187 | int s = 0; | 184 | int s = 0; |
| 188 | unsigned pages = to_pages(address, size); | 185 | unsigned pages = iommu_num_pages(address, size); |
| 189 | 186 | ||
| 190 | address &= PAGE_MASK; | 187 | address &= PAGE_MASK; |
| 191 | 188 | ||
| @@ -557,8 +554,8 @@ static struct dma_ops_domain *dma_ops_domain_alloc(struct amd_iommu *iommu, | |||
| 557 | if (iommu->exclusion_start && | 554 | if (iommu->exclusion_start && |
| 558 | iommu->exclusion_start < dma_dom->aperture_size) { | 555 | iommu->exclusion_start < dma_dom->aperture_size) { |
| 559 | unsigned long startpage = iommu->exclusion_start >> PAGE_SHIFT; | 556 | unsigned long startpage = iommu->exclusion_start >> PAGE_SHIFT; |
| 560 | int pages = to_pages(iommu->exclusion_start, | 557 | int pages = iommu_num_pages(iommu->exclusion_start, |
| 561 | iommu->exclusion_length); | 558 | iommu->exclusion_length); |
| 562 | dma_ops_reserve_addresses(dma_dom, startpage, pages); | 559 | dma_ops_reserve_addresses(dma_dom, startpage, pages); |
| 563 | } | 560 | } |
| 564 | 561 | ||
| @@ -767,7 +764,7 @@ static dma_addr_t __map_single(struct device *dev, | |||
| 767 | unsigned int pages; | 764 | unsigned int pages; |
| 768 | int i; | 765 | int i; |
| 769 | 766 | ||
| 770 | pages = to_pages(paddr, size); | 767 | pages = iommu_num_pages(paddr, size); |
| 771 | paddr &= PAGE_MASK; | 768 | paddr &= PAGE_MASK; |
| 772 | 769 | ||
| 773 | address = dma_ops_alloc_addresses(dev, dma_dom, pages); | 770 | address = dma_ops_alloc_addresses(dev, dma_dom, pages); |
| @@ -802,7 +799,7 @@ static void __unmap_single(struct amd_iommu *iommu, | |||
| 802 | if ((dma_addr == 0) || (dma_addr + size > dma_dom->aperture_size)) | 799 | if ((dma_addr == 0) || (dma_addr + size > dma_dom->aperture_size)) |
| 803 | return; | 800 | return; |
| 804 | 801 | ||
| 805 | pages = to_pages(dma_addr, size); | 802 | pages = iommu_num_pages(dma_addr, size); |
| 806 | dma_addr &= PAGE_MASK; | 803 | dma_addr &= PAGE_MASK; |
| 807 | start = dma_addr; | 804 | start = dma_addr; |
| 808 | 805 | ||
