]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/pci-calgary_64.c
Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / pci-calgary_64.c
index 080d1d27f37a0b4e042c6623af4cbf0c9ff5e8e7..e1e731d78f3821bb6f27950eca4033e52a77c606 100644 (file)
@@ -217,16 +217,6 @@ static inline unsigned long verify_bit_range(unsigned long* bitmap,
 
 #endif /* CONFIG_IOMMU_DEBUG */
 
-static inline unsigned int num_dma_pages(unsigned long dma, unsigned int dmalen)
-{
-       unsigned int npages;
-
-       npages = PAGE_ALIGN(dma + dmalen) - (dma & PAGE_MASK);
-       npages >>= PAGE_SHIFT;
-
-       return npages;
-}
-
 static inline int translation_enabled(struct iommu_table *tbl)
 {
        /* only PHBs with translation enabled have an IOMMU table */
@@ -408,7 +398,7 @@ static void calgary_unmap_sg(struct device *dev,
                if (dmalen == 0)
                        break;
 
-               npages = num_dma_pages(dma, dmalen);
+               npages = iommu_num_pages(dma, dmalen, PAGE_SIZE);
                iommu_free(tbl, dma, npages);
        }
 }
@@ -427,7 +417,7 @@ static int calgary_map_sg(struct device *dev, struct scatterlist *sg,
                BUG_ON(!sg_page(s));
 
                vaddr = (unsigned long) sg_virt(s);
-               npages = num_dma_pages(vaddr, s->length);
+               npages = iommu_num_pages(vaddr, s->length, PAGE_SIZE);
 
                entry = iommu_range_alloc(dev, tbl, npages);
                if (entry == bad_dma_address) {
@@ -464,7 +454,7 @@ static dma_addr_t calgary_map_single(struct device *dev, phys_addr_t paddr,
        struct iommu_table *tbl = find_iommu_table(dev);
 
        uaddr = (unsigned long)vaddr;
-       npages = num_dma_pages(uaddr, size);
+       npages = iommu_num_pages(uaddr, size, PAGE_SIZE);
 
        return iommu_alloc(dev, tbl, vaddr, npages, direction);
 }
@@ -475,7 +465,7 @@ static void calgary_unmap_single(struct device *dev, dma_addr_t dma_handle,
        struct iommu_table *tbl = find_iommu_table(dev);
        unsigned int npages;
 
-       npages = num_dma_pages(dma_handle, size);
+       npages = iommu_num_pages(dma_handle, size, PAGE_SIZE);
        iommu_free(tbl, dma_handle, npages);
 }