iommu-api: Remove iommu_{un}map_range functions
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 21 Jan 2010 10:50:28 +0000 (11:50 +0100)
committerJoerg Roedel <joerg.roedel@amd.com>
Sun, 7 Mar 2010 17:01:13 +0000 (18:01 +0100)
These functions are not longer used and can be removed
savely. There functionality is now provided by the
iommu_{un}map functions which are also capable of multiple
page sizes.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
arch/x86/kernel/amd_iommu.c
drivers/base/iommu.c
include/linux/iommu.h

index 0e068c9ca5f55af46fbbe487d6b4fc94b21bdc13..d8da9988edd9e486b71ac2490bcd986de2ff6c46 100644 (file)
@@ -2506,52 +2506,6 @@ static int amd_iommu_attach_device(struct iommu_domain *dom,
        return ret;
 }
 
-static int amd_iommu_map_range(struct iommu_domain *dom,
-                              unsigned long iova, phys_addr_t paddr,
-                              size_t size, int iommu_prot)
-{
-       struct protection_domain *domain = dom->priv;
-       unsigned long i,  npages = iommu_num_pages(paddr, size, PAGE_SIZE);
-       int prot = 0;
-       int ret;
-
-       if (iommu_prot & IOMMU_READ)
-               prot |= IOMMU_PROT_IR;
-       if (iommu_prot & IOMMU_WRITE)
-               prot |= IOMMU_PROT_IW;
-
-       iova  &= PAGE_MASK;
-       paddr &= PAGE_MASK;
-
-       for (i = 0; i < npages; ++i) {
-               ret = iommu_map_page(domain, iova, paddr, prot, PAGE_SIZE);
-               if (ret)
-                       return ret;
-
-               iova  += PAGE_SIZE;
-               paddr += PAGE_SIZE;
-       }
-
-       return 0;
-}
-
-static void amd_iommu_unmap_range(struct iommu_domain *dom,
-                                 unsigned long iova, size_t size)
-{
-
-       struct protection_domain *domain = dom->priv;
-       unsigned long i,  npages = iommu_num_pages(iova, size, PAGE_SIZE);
-
-       iova  &= PAGE_MASK;
-
-       for (i = 0; i < npages; ++i) {
-               iommu_unmap_page(domain, iova, PAGE_SIZE);
-               iova  += PAGE_SIZE;
-       }
-
-       iommu_flush_tlb_pde(domain);
-}
-
 static int amd_iommu_map(struct iommu_domain *dom, unsigned long iova,
                         phys_addr_t paddr, int gfp_order, int iommu_prot)
 {
@@ -2616,8 +2570,6 @@ static struct iommu_ops amd_iommu_ops = {
        .detach_dev = amd_iommu_detach_device,
        .map = amd_iommu_map,
        .unmap = amd_iommu_unmap,
-       .map_range = amd_iommu_map_range,
-       .unmap_range = amd_iommu_unmap_range,
        .iova_to_phys = amd_iommu_iova_to_phys,
        .domain_has_cap = amd_iommu_domain_has_cap,
 };
index 55d37e4609eb6624f2852db94fac056a95550c2d..6e6b6a11b3ced64d1c90e3c9d35d25823f6b5ccf 100644 (file)
@@ -80,20 +80,6 @@ void iommu_detach_device(struct iommu_domain *domain, struct device *dev)
 }
 EXPORT_SYMBOL_GPL(iommu_detach_device);
 
-int iommu_map_range(struct iommu_domain *domain, unsigned long iova,
-                   phys_addr_t paddr, size_t size, int prot)
-{
-       return iommu_ops->map_range(domain, iova, paddr, size, prot);
-}
-EXPORT_SYMBOL_GPL(iommu_map_range);
-
-void iommu_unmap_range(struct iommu_domain *domain, unsigned long iova,
-                     size_t size)
-{
-       iommu_ops->unmap_range(domain, iova, size);
-}
-EXPORT_SYMBOL_GPL(iommu_unmap_range);
-
 phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
                               unsigned long iova)
 {
@@ -119,10 +105,7 @@ int iommu_map(struct iommu_domain *domain, unsigned long iova,
 
        BUG_ON((iova | paddr) & invalid_mask);
 
-       if (iommu_ops->map)
-               return iommu_ops->map(domain, iova, paddr, gfp_order, prot);
-
-       return iommu_ops->map_range(domain, iova, paddr, size, prot);
+       return iommu_ops->map(domain, iova, paddr, gfp_order, prot);
 }
 EXPORT_SYMBOL_GPL(iommu_map);
 
@@ -136,11 +119,6 @@ int iommu_unmap(struct iommu_domain *domain, unsigned long iova, int gfp_order)
 
        BUG_ON(iova & invalid_mask);
 
-       if (iommu_ops->unmap)
-               return iommu_ops->unmap(domain, iova, gfp_order);
-
-       iommu_ops->unmap_range(domain, iova, size);
-
-       return gfp_order;
+       return iommu_ops->unmap(domain, iova, gfp_order);
 }
 EXPORT_SYMBOL_GPL(iommu_unmap);
index 5a7a3d888dac3e70c2598d16f53c8d9107d6def3..be22ad83689cb96275d0386c5325c4079699dc9c 100644 (file)
@@ -40,10 +40,6 @@ struct iommu_ops {
                   phys_addr_t paddr, int gfp_order, int prot);
        int (*unmap)(struct iommu_domain *domain, unsigned long iova,
                     int gfp_order);
-       int (*map_range)(struct iommu_domain *domain, unsigned long iova,
-                        phys_addr_t paddr, size_t size, int prot);
-       void (*unmap_range)(struct iommu_domain *domain, unsigned long iova,
-                           size_t size);
        phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
                                    unsigned long iova);
        int (*domain_has_cap)(struct iommu_domain *domain,
@@ -60,10 +56,6 @@ extern int iommu_attach_device(struct iommu_domain *domain,
                               struct device *dev);
 extern void iommu_detach_device(struct iommu_domain *domain,
                                struct device *dev);
-extern int iommu_map_range(struct iommu_domain *domain, unsigned long iova,
-                          phys_addr_t paddr, size_t size, int prot);
-extern void iommu_unmap_range(struct iommu_domain *domain, unsigned long iova,
-                             size_t size);
 extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
                     phys_addr_t paddr, int gfp_order, int prot);
 extern int iommu_unmap(struct iommu_domain *domain, unsigned long iova,
@@ -104,18 +96,6 @@ static inline void iommu_detach_device(struct iommu_domain *domain,
 {
 }
 
-static inline int iommu_map_range(struct iommu_domain *domain,
-                                 unsigned long iova, phys_addr_t paddr,
-                                 size_t size, int prot)
-{
-       return -ENODEV;
-}
-
-static inline void iommu_unmap_range(struct iommu_domain *domain,
-                                    unsigned long iova, size_t size)
-{
-}
-
 static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
                            phys_addr_t paddr, int gfp_order, int prot)
 {