提交 40becd8d 编写于 作者: F FUJITA Tomonori 提交者: Ingo Molnar

AMD IOMMU: use iommu_device_max_index

AMD IOMMU can use iommu_device_max_index() instead of the homegrown
function.
Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: NJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 24268245
...@@ -470,10 +470,6 @@ static int init_unity_mappings_for_device(struct dma_ops_domain *dma_dom, ...@@ -470,10 +470,6 @@ static int init_unity_mappings_for_device(struct dma_ops_domain *dma_dom,
* efficient allocator. * efficient allocator.
* *
****************************************************************************/ ****************************************************************************/
static unsigned long dma_mask_to_pages(unsigned long mask)
{
return PAGE_ALIGN(mask) >> PAGE_SHIFT;
}
/* /*
* The address allocator core function. * The address allocator core function.
...@@ -486,14 +482,14 @@ static unsigned long dma_ops_alloc_addresses(struct device *dev, ...@@ -486,14 +482,14 @@ static unsigned long dma_ops_alloc_addresses(struct device *dev,
unsigned long align_mask, unsigned long align_mask,
u64 dma_mask) u64 dma_mask)
{ {
unsigned long limit = dma_mask_to_pages(dma_mask); unsigned long limit;
unsigned long address; unsigned long address;
unsigned long size = dom->aperture_size >> PAGE_SHIFT;
unsigned long boundary_size; unsigned long boundary_size;
boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1,
PAGE_SIZE) >> PAGE_SHIFT; PAGE_SIZE) >> PAGE_SHIFT;
limit = limit < size ? limit : size; limit = iommu_device_max_index(dom->aperture_size >> PAGE_SHIFT, 0,
dma_mask >> PAGE_SHIFT);
if (dom->next_bit >= limit) { if (dom->next_bit >= limit) {
dom->next_bit = 0; dom->next_bit = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册