iommu: Delete split_and_remove_iova()
authorJohn Garry <john.garry@huawei.com>
Thu, 3 Dec 2020 18:34:50 +0000 (02:34 +0800)
committerWill Deacon <will@kernel.org>
Tue, 8 Dec 2020 14:14:48 +0000 (14:14 +0000)
Function split_and_remove_iova() has not been referenced since commit
e70b081c6f37 ("iommu/vt-d: Remove IOVA handling code from the non-dma_ops
path"), so delete it.

Signed-off-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/1607020492-189471-2-git-send-email-john.garry@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/iova.c
include/linux/iova.h

index ff59d8a..3331c04 100644 (file)
@@ -742,47 +742,6 @@ copy_reserved_iova(struct iova_domain *from, struct iova_domain *to)
 }
 EXPORT_SYMBOL_GPL(copy_reserved_iova);
 
-struct iova *
-split_and_remove_iova(struct iova_domain *iovad, struct iova *iova,
-                     unsigned long pfn_lo, unsigned long pfn_hi)
-{
-       unsigned long flags;
-       struct iova *prev = NULL, *next = NULL;
-
-       spin_lock_irqsave(&iovad->iova_rbtree_lock, flags);
-       if (iova->pfn_lo < pfn_lo) {
-               prev = alloc_and_init_iova(iova->pfn_lo, pfn_lo - 1);
-               if (prev == NULL)
-                       goto error;
-       }
-       if (iova->pfn_hi > pfn_hi) {
-               next = alloc_and_init_iova(pfn_hi + 1, iova->pfn_hi);
-               if (next == NULL)
-                       goto error;
-       }
-
-       __cached_rbnode_delete_update(iovad, iova);
-       rb_erase(&iova->node, &iovad->rbroot);
-
-       if (prev) {
-               iova_insert_rbtree(&iovad->rbroot, prev, NULL);
-               iova->pfn_lo = pfn_lo;
-       }
-       if (next) {
-               iova_insert_rbtree(&iovad->rbroot, next, NULL);
-               iova->pfn_hi = pfn_hi;
-       }
-       spin_unlock_irqrestore(&iovad->iova_rbtree_lock, flags);
-
-       return iova;
-
-error:
-       spin_unlock_irqrestore(&iovad->iova_rbtree_lock, flags);
-       if (prev)
-               free_iova_mem(prev);
-       return NULL;
-}
-
 /*
  * Magazine caches for IOVA ranges.  For an introduction to magazines,
  * see the USENIX 2001 paper "Magazines and Vmem: Extending the Slab
index a0637ab..a77add5 100644 (file)
@@ -160,8 +160,6 @@ int init_iova_flush_queue(struct iova_domain *iovad,
                          iova_flush_cb flush_cb, iova_entry_dtor entry_dtor);
 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
 void put_iova_domain(struct iova_domain *iovad);
-struct iova *split_and_remove_iova(struct iova_domain *iovad,
-       struct iova *iova, unsigned long pfn_lo, unsigned long pfn_hi);
 void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad);
 #else
 static inline int iova_cache_get(void)
@@ -258,14 +256,6 @@ static inline void put_iova_domain(struct iova_domain *iovad)
 {
 }
 
-static inline struct iova *split_and_remove_iova(struct iova_domain *iovad,
-                                                struct iova *iova,
-                                                unsigned long pfn_lo,
-                                                unsigned long pfn_hi)
-{
-       return NULL;
-}
-
 static inline void free_cpu_cached_iovas(unsigned int cpu,
                                         struct iova_domain *iovad)
 {