powerpc/powernv/ioda: Remove obsolete iommu_table_ops::exchange callbacks
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
This commit is contained in:
parent
021b786811
commit
a102f139aa
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue