powerpc/powernv/ioda: Remove obsolete iommu_table_ops::exchange callbacks
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Thu, 29 Aug 2019 08:52:52 +0000 (18:52 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 29 Aug 2019 23:40:15 +0000 (09:40 +1000)
As now we have xchg_no_kill/tce_kill, these are not used anymore so
remove them.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190829085252.72370-6-aik@ozlabs.ru
arch/powerpc/include/asm/iommu.h
arch/powerpc/kernel/iommu.c
arch/powerpc/platforms/powernv/pci-ioda.c

index babddede9245b56e121b8d595c5355ad12e64e35..9ed0206cd98cff9d0b64bcd1cffb4cb52374c662 100644 (file)
@@ -48,16 +48,6 @@ struct iommu_table_ops {
         * returns old TCE and DMA direction mask.
         * @tce is a physical address.
         */
-       int (*exchange)(struct iommu_table *tbl,
-                       long index,
-                       unsigned long *hpa,
-                       enum dma_data_direction *direction);
-       /* Real mode */
-       int (*exchange_rm)(struct iommu_table *tbl,
-                       long index,
-                       unsigned long *hpa,
-                       enum dma_data_direction *direction);
-
        int (*xchg_no_kill)(struct iommu_table *tbl,
                        long index,
                        unsigned long *hpa,
index 145f29cf7e4c3f17631025cf63ad31a376422312..bf803000e4b38ccc689299c1a85694d9afe57bbc 100644 (file)
@@ -981,30 +981,6 @@ int iommu_tce_check_gpa(unsigned long page_shift, unsigned long gpa)
 }
 EXPORT_SYMBOL_GPL(iommu_tce_check_gpa);
 
-long iommu_tce_xchg(struct mm_struct *mm, struct iommu_table *tbl,
-               unsigned long entry, unsigned long *hpa,
-               enum dma_data_direction *direction)
-{
-       long ret;
-       unsigned long size = 0;
-
-       ret = tbl->it_ops->exchange(tbl, entry, hpa, direction);
-
-       if (!ret && ((*direction == DMA_FROM_DEVICE) ||
-                       (*direction == DMA_BIDIRECTIONAL)) &&
-                       !mm_iommu_is_devmem(mm, *hpa, tbl->it_page_shift,
-                                       &size))
-               SetPageDirty(pfn_to_page(*hpa >> PAGE_SHIFT));
-
-       /* if (unlikely(ret))
-               pr_err("iommu_tce: %s failed on hwaddr=%lx ioba=%lx kva=%lx ret=%d\n",
-                       __func__, hwaddr, entry << tbl->it_page_shift,
-                               hwaddr, ret); */
-
-       return ret;
-}
-EXPORT_SYMBOL_GPL(iommu_tce_xchg);
-
 extern long iommu_tce_xchg_no_kill(struct mm_struct *mm,
                struct iommu_table *tbl,
                unsigned long entry, unsigned long *hpa,
@@ -1044,7 +1020,7 @@ int iommu_take_ownership(struct iommu_table *tbl)
         * requires exchange() callback defined so if it is not
         * implemented, we disallow taking ownership over the table.
         */
-       if (!tbl->it_ops->exchange)
+       if (!tbl->it_ops->xchg_no_kill)
                return -EINVAL;
 
        spin_lock_irqsave(&tbl->large_pool.lock, flags);
index 911f96abed8982603a122618e1519a6dbaf12be9..22a51aa75796d2c3c6042458632133de4dbb997b 100644 (file)
@@ -1946,28 +1946,6 @@ static int pnv_ioda_tce_xchg_no_kill(struct iommu_table *tbl, long index,
 {
        return pnv_tce_xchg(tbl, index, hpa, direction, !realmode);
 }
-
-static int pnv_ioda1_tce_xchg(struct iommu_table *tbl, long index,
-               unsigned long *hpa, enum dma_data_direction *direction)
-{
-       long ret = pnv_tce_xchg(tbl, index, hpa, direction, true);
-
-       if (!ret)
-               pnv_pci_p7ioc_tce_invalidate(tbl, index, 1, false);
-
-       return ret;
-}
-
-static int pnv_ioda1_tce_xchg_rm(struct iommu_table *tbl, long index,
-               unsigned long *hpa, enum dma_data_direction *direction)
-{
-       long ret = pnv_tce_xchg(tbl, index, hpa, direction, false);
-
-       if (!ret)
-               pnv_pci_p7ioc_tce_invalidate(tbl, index, 1, true);
-
-       return ret;
-}
 #endif
 
 static void pnv_ioda1_tce_free(struct iommu_table *tbl, long index,
@@ -1981,8 +1959,6 @@ static void pnv_ioda1_tce_free(struct iommu_table *tbl, long index,
 static struct iommu_table_ops pnv_ioda1_iommu_ops = {
        .set = pnv_ioda1_tce_build,
 #ifdef CONFIG_IOMMU_API
-       .exchange = pnv_ioda1_tce_xchg,
-       .exchange_rm = pnv_ioda1_tce_xchg_rm,
        .xchg_no_kill = pnv_ioda_tce_xchg_no_kill,
        .tce_kill = pnv_pci_p7ioc_tce_invalidate,
        .useraddrptr = pnv_tce_useraddrptr,
@@ -2113,30 +2089,6 @@ static int pnv_ioda2_tce_build(struct iommu_table *tbl, long index,
        return ret;
 }
 
-#ifdef CONFIG_IOMMU_API
-static int pnv_ioda2_tce_xchg(struct iommu_table *tbl, long index,
-               unsigned long *hpa, enum dma_data_direction *direction)
-{
-       long ret = pnv_tce_xchg(tbl, index, hpa, direction, true);
-
-       if (!ret)
-               pnv_pci_ioda2_tce_invalidate(tbl, index, 1, false);
-
-       return ret;
-}
-
-static int pnv_ioda2_tce_xchg_rm(struct iommu_table *tbl, long index,
-               unsigned long *hpa, enum dma_data_direction *direction)
-{
-       long ret = pnv_tce_xchg(tbl, index, hpa, direction, false);
-
-       if (!ret)
-               pnv_pci_ioda2_tce_invalidate(tbl, index, 1, true);
-
-       return ret;
-}
-#endif
-
 static void pnv_ioda2_tce_free(struct iommu_table *tbl, long index,
                long npages)
 {
@@ -2148,8 +2100,6 @@ static void pnv_ioda2_tce_free(struct iommu_table *tbl, long index,
 static struct iommu_table_ops pnv_ioda2_iommu_ops = {
        .set = pnv_ioda2_tce_build,
 #ifdef CONFIG_IOMMU_API
-       .exchange = pnv_ioda2_tce_xchg,
-       .exchange_rm = pnv_ioda2_tce_xchg_rm,
        .xchg_no_kill = pnv_ioda_tce_xchg_no_kill,
        .tce_kill = pnv_pci_ioda2_tce_invalidate,
        .useraddrptr = pnv_tce_useraddrptr,