powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Wed, 22 Mar 2017 04:21:49 +0000 (15:21 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 30 Mar 2017 10:42:11 +0000 (21:42 +1100)
commit11edf116e3a6352cfee6b1437d41603c9aff79c9
tree2c9da60b682697828e6f88e5f3e1f3965d5ad3ad
parenta540aa56ba3d29084f28710c8b93cc9c3c422943
powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal

At the moment iommu_table can be disposed by either calling
iommu_table_free() directly or it_ops::free(); the only implementation
of free() is in IODA2 - pnv_ioda2_table_free() - and it calls
iommu_table_free() anyway.

As we are going to have reference counting on tables, we need an unified
way of disposing tables.

This moves it_ops::free() call into iommu_free_table() and makes use
of the latter. The free() callback now handles only platform-specific
data.

As from now on the iommu_free_table() calls it_ops->free(), we need
to have it_ops initialized before calling iommu_free_table() so this
moves this initialization in pnv_pci_ioda2_create_table().

This should cause no behavioral change.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/iommu.c
arch/powerpc/platforms/powernv/pci-ioda.c
drivers/vfio/vfio_iommu_spapr_tce.c